哪种方式为 nesjt 设置配置更好,ConfigModule 或普通配置模型
which way to set config for nesjt is better, ConfigModule or normal config model
在网站 (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
我觉得第二种方式更简单也更intuitive.Which一种你觉得更好?
我更喜欢使用环境变量(它由 dotenv
包提供支持,如文档中所述)- 当应用程序部署为 Docker 容器时,它发挥最佳作用。
不应在您的 GIT 存储库中发布任何包含凭据的配置(尤其是产品凭据)。
这两种方法可以同时使用。基本上,ConfigModule
只不过是对环境变量的简单抽象。您仍然可以遵循 "normal node mode",但将这些特定于环境的值封装在您的模块中。通常,它简化了测试,因为您没有 process.env
在任何地方都进行硬编码,相反,您使用公开的服务,它为您提供强大的类型优势以及毫不费力地模拟您的 class' 方法的能力。
重新假设,下面的结构没有错:
|- config/index.ts
|- config/config.base.ts
|- config/config.dev.ts
|- config/config.prod.ts
这一切都归结为您希望如何访问这些值。
在网站 (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
我觉得第二种方式更简单也更intuitive.Which一种你觉得更好?
我更喜欢使用环境变量(它由 dotenv
包提供支持,如文档中所述)- 当应用程序部署为 Docker 容器时,它发挥最佳作用。
不应在您的 GIT 存储库中发布任何包含凭据的配置(尤其是产品凭据)。
这两种方法可以同时使用。基本上,ConfigModule
只不过是对环境变量的简单抽象。您仍然可以遵循 "normal node mode",但将这些特定于环境的值封装在您的模块中。通常,它简化了测试,因为您没有 process.env
在任何地方都进行硬编码,相反,您使用公开的服务,它为您提供强大的类型优势以及毫不费力地模拟您的 class' 方法的能力。
重新假设,下面的结构没有错:
|- config/index.ts
|- config/config.base.ts
|- config/config.dev.ts
|- config/config.prod.ts
这一切都归结为您希望如何访问这些值。