有一种建议方法可以在网站(https://docs.nestjs.com/techniques/configuration)中为nestjs
设置配置。
它使用nestjs模块,并且必须将每个使用它的模块导入。喜欢
@Module({
imports: [ConfigModule],
...
})
但是我更喜欢使用以下常规节点模型来设置配置:
-配置
|-config / index.ts
|-config / config.base.ts
|-config / config.dev.ts
|-config / config.prod.ts
我认为第二种方法更简单,更直观,您认为哪种更好?
答案 0 :(得分:0)
我更喜欢使用环境变量(由dotenv
包提供支持,在文档中进行了介绍)-在将应用程序部署为Docker容器时,它发挥最佳作用。
任何包含凭据的配置都不应在您的GIT存储库中发布(尤其是prod凭据)。
答案 1 :(得分:0)
两种方法可以同时使用。基本上,ConfigModule
仅仅是对环境变量的简单抽象。您仍然可以遵循“普通节点模式”,但是将这些特定于env的值封装在模块中。通常,它简化了测试,因为您没有到处都进行process.env
硬编码,而是使用了公开服务,该服务为您提供了强大的键入好处,并且可以轻松地模拟类的方法。
重新假设,以下结构没有问题:
|- config/index.ts
|- config/config.base.ts
|- config/config.dev.ts
|- config/config.prod.ts
全部归结为您要如何访问这些值。