【问题标题】:Node.js config file vs .env architecture practice and building patternNode.js 配置文件 vs .env 架构实践和构建模式
【发布时间】:2019-09-24 07:24:55
【问题描述】:

我正在 Node.js 上开发服务器端应用程序,我正在考虑使用 config 文件。但是当我用谷歌搜索它时......现在我有更多的问题而不是答案。

就我而言,我有很多带有不同类型参数的函数 sensitivity 不仅仅是secret, tokens, keys。这大部分 参数作为用户依赖。例如,启动应用程序的用户使用 定义(通过 CLI [promtly]):天数,某事的次数 将执行,何时何地等

例如,我只检查了这个question 和那个article。我的问题很简单:

使用哪一个?为什么? (或者我在哪里可以阅读更多相关信息)仅使用 .env 文件,或仅使用 config.json 或可能两者都像上面的文章?是否OK将所有设置存储在package.json 中? (就像在这个question

如果更有经验的 JS 开发人员告诉我应该使用什么以及为什么使用,我将非常高兴。

即使这个问题被标记为answered,请随时告诉我(以及 SO 上的每个人)关于您对此类问题的体验。但请记住,我问的不是*How to do it*DotEnv 的使用(或任何其他npm 模块)。一切都与模式和实践有关。

【问题讨论】:

  • "什么做法比较好?"固执己见,因此离题。 “什么时候用?”不会离题。
  • 已修复。至于我,我想我问这个问题的主要原因是关于反模式和用例。我可以将所有必要的数据/参数放在.env 文件中,但可能(出于某种我不知道的原因)它不是ok。所以也许有人可以解释一下。

标签: javascript node.js design-patterns configuration architecture


【解决方案1】:

是否可以将所有设置存储在 package.json 中?

当然,理论上你可以做到这一点。但是您想配置您的服务,并且您通常运行具有不同配置的相同包。因此,拥有某种配置文件确实很有意义,然后您可以为本地测试服务器、开发服务器、生产服务器等设置不同的配置。

.env 文件还是 config.json ?

这完全取决于你。但是 .env 文件似乎不支持任何嵌套数据,我认为这对配置非常有用。我一直使用 config jsons,到目前为止效果很好。

在我的例子中,我有很多带有不同类型敏感性参数的函数,而不仅仅是秘密、令牌、密钥。

对于生产环境中的敏感数据,您确实应该使用秘密存储(例如 Vault)。用于本地测试 不过,这与环境无关。

大多数值取决于用户

然后将它们存储在配置文件中,或使用数据库。

【讨论】:

  • 感谢您的回答。据我了解,最相关的做法是结合使用.envconfig 文件。在我的情况下,将args 存储在数据库中不是一个选项。实际上,因为我只有一个user,它是管理整个系统的。所以我不需要存储很多设置变量。
猜你喜欢
  • 2011-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-14
  • 2015-08-03
  • 2021-01-25
  • 1970-01-01
相关资源
最近更新 更多