问题描述
我有两个.env文件,例如dev.env
和staging.env
.我正在使用typeorm作为我的数据库ORM.我想知道每当我运行应用程序时如何让typeorm读取其中一个配置文件. Error: No connection options were found in any of configurations file
来自typeormmodule.
I have two .env files like dev.env
and staging.env
. I am using typeorm as my database ORM. I would like to know how to let typeorm read either of the config file whenever I run the application. Error: No connection options were found in any of configurations file
from typeormmodule.
推荐答案
您可以创建 ConfigService 读取与环境变量NODE_ENV
对应的文件:
You can create a ConfigService that reads in the file corresponding to the environment variable NODE_ENV
:
1)在启动脚本中设置NODE_ENV
变量:
1) Set the NODE_ENV
variable in your start scripts:
"start:dev": "cross-env NODE_ENV=dev ts-node -r tsconfig-paths/register src/main.ts",
"start:staging": "cross-env NODE_ENV=staging node dist/src/main.js",
2)在ConfigService中读取相应的.env文件
2) Read the corresponding .env file in the ConfigService
@Injectable()
export class ConfigService {
private readonly envConfig: EnvConfig;
constructor() {
this.envConfig = dotenv.parse(fs.readFileSync(`${process.env.NODE_ENV}.env`));
}
get databaseHost(): string {
return this.envConfig.DATABASE_HOST;
}
}
3)使用ConfigService
设置数据库连接:
3) Use the ConfigService
to set up your database connection:
TypeOrmModule.forRootAsync({
imports:[ConfigModule],
useFactory: async (configService: ConfigService) => ({
type: configService.getDatabase()
// ...
}),
inject: [ConfigService]
}),
这篇关于使用环境文件进行NestJs TypeORM配置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!