我想使用 TypeORM 為我的 NestJs 應(yīng)用程序設(shè)置數(shù)據(jù)庫連接。我有一個(gè)配置文件,它從讀取所有值.env文件import { DotenvConfigOutput, config } from 'dotenv';const envFound: DotenvConfigOutput = config();if (!envFound) { throw new Error('.env file was not found.');}process.env.NODE_ENV = process.env.NODE_ENV || 'development';export const DATABASE_TYPE: string = process.env.DATABASE_TYPE || 'postgres';export const DATABASE_USERNAME: string = process.env.DATABASE_USERNAME || 'admin';export const DATABASE_PASSWORD: string = process.env.DATABASE_PASSWORD || 'myPW';export const DATABASE_HOST: string = process.env.DATABASE_HOST || 'localhost';export const DATABASE_PORT: number = Number(process.env.DATABASE_PORT) || 5432;export const DATABASE_NAME: string = process.env.DATABASE_NAME || 'myDB';export const DATABASE_SYNCHRONIZE: boolean = Boolean(process.env.DATABASE_SYNCHRONIZE) || true;我正在 app.module 中設(shè)置連接,所以在應(yīng)用程序啟動(dòng)時(shí)。import { DATABASE_TYPE, DATABASE_HOST, DATABASE_PORT, DATABASE_USERNAME, DATABASE_PASSWORD, DATABASE_NAME, DATABASE_SYNCHRONIZE,} from './config';@Module({ imports: [ TypeOrmModule.forRoot({ type: DATABASE_TYPE, host: DATABASE_HOST, port: DATABASE_PORT, username: DATABASE_USERNAME, password: DATABASE_PASSWORD, database: DATABASE_NAME, entities: [], synchronize: DATABASE_SYNCHRONIZE, }), ], controllers: [], providers: [],})export class AppModule {}不幸的是我在type現(xiàn)場遇到了這個(gè)錯(cuò)誤類型 'string' 不能分配給類型 '"mysql" | "mariadb" | "postgres" | "蟑螂數(shù)據(jù)庫" | "sqlite" | "mssql" | "神諭" | "科爾多瓦" | “原生腳本” | “反應(yīng)原生” | "sqljs" | "mongodb" | “極光數(shù)據(jù)API” | "expo"'.ts(2322) MysqlConnectionOptions.d.ts(12, 14): 預(yù)期類型來自屬性'type',它在'TypeOrmModuleOptions'類型上聲明我不想傳遞硬編碼字符串,'postgres'因?yàn)槲蚁M3謩?dòng)態(tài)。我更喜歡 Postgres,但有些客戶使用 oracle 數(shù)據(jù)庫,我也必須支持 MSSQL。我該如何解決該配置問題?
將字符串變量傳遞給 TypeOrmModuleOptions 中的“type”
牛魔王的故事
2021-11-04 17:45:51