nestjs - 如何在 nestjs 中管理不同的配置环境

标签 nestjs

我想要一些环境,比如说development , production , test .这些环境应该是独立的,并使用它们自己的配置参数集,例如对于 DB、SERVER_PORT、USER 等。
它们不应该在代码库中,所以我认为它们应该是不同的 .env 文件。也就是说,我应该能够根据事件的环境加载不同的 .env 文件。此外,目前还不清楚我必须在哪里设置该环境切换器。

也许它应该是具有 NODE_ENV 参数的单个 .env 文件,该参数可以设置为上述任何值,无论是开发、生产还是测试。并且根据此参数的值自动加载一组必要的配置参数。

我已经阅读了文档,目前对我来说似乎有点困惑。

似乎应该有一些配置工厂。

最佳答案

假设您在项目的根目录中有以下配置文件:env.development , env.staging , env.test这是我将如何实现它:
app.module.ts文件:

import { ConfigModule } from '@nestjs/config';

const ENV = process.env.NODE_ENV;

@Module({
  imports: [
    ConfigModule.forRoot({
      envFilePath: !ENV ? '.env' : `.env.${ENV}`,
    }),
  ],
  controllers: [AppController],
})
export class AppModule {}
受此解决方案的启发:https://github.com/nestjsx/nestjs-config#using-different-env-files

关于nestjs - 如何在 nestjs 中管理不同的配置环境,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61431679/

相关文章:

typescript - 如何在nest.js中使用异常过滤器

javascript - NestJS:如何将错误从一个错误过滤器传递到另一个错误过滤器?

node.js - NestJS 和 TypeORM 问题有或没有 tsconfig 目标 es5

typescript - 如何完全覆盖对 NestJs http 请求进行单元测试?

node.js - 保存和更新不会删除已删除的实体

javascript - 有没有办法将 Nest JS 与 Sapper (Svelte) 一起使用?

mysql - 使用nestjs框架编写mysql的自定义原始查询

node.js - NestJs 设计问题 : How can I avoid creating a Nodejs Instance for each team?

mongodb - typeorm:在新项目上创建的迁移无法识别实体 - "No changes in database schema were found - cannot generate a migration."

node.js - 在 Nest.js 中访问 Stripe webhook 的原始主体