如何解决如何使用 postgresql 在 nest js 中设置不同的环境文件
我是这个框架的新手。我使用 ormconfig 文件连接了 Postgresql 数据库。但是我需要配置开发环境,生产环境,测试环境。如何实现这个场景。我试图在我的项目中使用配置服务。但始终只连接 .env 文件配置。
development.env
POSTGRES_HOST=127.0.0.1
POSTGRES_PORT="5432"
POSTGRES_USER=postgres
POSTGRES_PASSWORD='*****'
POSTGRES_DATABASE=testdb123
PORT=4000
解决方法
您可以使用 ormconfig.js 并在其顶部添加如下内容:
require('dotenv').config({
path: '.env.' + process.env.NODE_ENV
})
另一种选择是像这样导入 ConfigModule
:
ConfigModule.forRoot({
load: [config],envFilePath: '.env.' + process.env.NODE_ENV
})
对 TypeORM 使用 async configuration:
TypeOrmModule.forRootAsync({
imports: [ConfigModule],useFactory: (configService: ConfigService) => ({
type: 'mysql',host: configService.get('POSTGRES_HOST'),port: +configService.get<number>('POSTGRES_PORT'),username: configService.get('POSTGRES_USER'),password: configService.get('POSTGRES_PASSWORD'),database: configService.get('POSTGRES_DATABASE'),entities: [__dirname + '/**/*.entity{.ts,.js}'],synchronize: configService.get('TYPEORM_SYNC'),}),inject: [ConfigService],})
我使用类似的异步配置 here。
,好吧,我建议将 .env 文件保留在 git ignore 下,并有一个包含所有可能配置项的 .env.example。
如果你想为每个环境设置一个默认设置,你可以使用类似的东西 https://www.npmjs.com/package/dotenv-defaults
如果您想为每个环境使用 DI 和输入以及 env 文件,请查看 nest configuration module
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。