哪种方法为nesjt设置配置更好,可以使用ConfigModule或常规配置模型

时间:2018-09-02 07:19:03

标签: angular config nestjs

有一种建议方法可以在网站(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
我认为第二种方法更简单,更直观,您认为哪种更好?

2 个答案:

答案 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

全部归结为您要如何访问这些值。