微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用 postgresql 在 nest js 中设置不同的环境文件

如何解决如何使用 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 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?