我正在尝试在 Nestjs
中为两个环境设置配置:development
和 test
为此,我分别创建了两个名为 .env.dev
和 .env.test
的环境文件。
现在在我的项目中,我有一个配置目录,其中有一个名为 database.config.ts
的文件,其中包含所有 typeorm
选项作为对象。
import * as path from 'path';
import * as dotenv from 'dotenv';
const env = process.env.NODE_ENV || 'dev';
const dotenv_path = path.resolve(process.cwd(), `.env.${env}`);
const result = dotenv.config({ path: dotenv_path });
if (result.error) { /* do nothing */ }
export const DatabaseConfig = {
type: 'postgres' as any,
driver: 'postgres',
database: process.env.DB_DATABASE,
port: parseInt(process.env.DB_PORT),
username: process.env.DB_USER,
password: process.env.DB_PASSWORD,
host: process.env.DB_HOST,
synchronize: false,
logging: true,
entities: ["dist/**/*.entity.js"],
seeds: ["src/database/seeds/*.ts"],
migrations: ["./dist/database/migrations/*.js"],
cli: {
"entitiesDir": "dist",
"migrationsDir": "./src/database/migrations"
}
}
module.exports = DatabaseConfig
现在在我的 app.module.ts
中,我正在导入此文件并将其传递给 typeormModule,如下所示:
@Module({
imports: [
ConfigModule.forRoot({
isGlobal: true,
validationSchema: Joi.object({
NODE_ENV: Joi.string()
.valid('development', 'production', 'test')
.default('development'),
PORT: Joi.number().default(3030),
}),
}),
TypeOrmModule.forRoot(DatabaseConfig),
这给了我一个错误
Error: No connection options were found in any orm configuration files.