有一种建议方法可以在网站(nestjs
)中为https://docs.nestjs.com/techniques/configuration设置配置。
它使用nestjs模块,并且必须在您使用它的每个模块中导入。喜欢
@Module({
imports: [ConfigModule],
...
})
但我更喜欢将config使用普通节点模型设置如下: - 配置 | - config / index.ts | - config / config.base.ts | - config / config.dev.ts | - config / config.prod.ts 我认为第二种方式更简单,更直观。你认为哪一种更好?
两种方法可以同时使用。基本上,ConfigModule
只不过是对环境变量的简单抽象。您仍然可以遵循“正常节点模式”,但将这些特定于env的值封装在模块中。一般来说,它简化了测试,因为你没有在任何地方硬编码process.env
,相反,你使用暴露的服务,它给你强大的打字优势,以及轻松模拟你的类的方法的能力。
再说一遍,以下结构没有错:
|- config/index.ts
|- config/config.base.ts
|- config/config.dev.ts
|- config/config.prod.ts
这一切都归结为您希望如何访问这些值。
我更喜欢使用环境变量(使用dotenv
软件包,在文档中描述) - 当应用程序部署为Docker容器时,它最佳。
任何包含凭据的配置都不应发布在您的GIT存储库中(尤其是prod凭证)。