【问题标题】:NodeJs Environment variables vs config fileNodeJs 环境变量与配置文件
【发布时间】:2019-01-25 18:27:27
【问题描述】:

实际上,我有一个 nodejs express 应用程序,它的配置文件用于主机、端口、JWT 令牌、数据库参数等参数。

问题是,将这些参数直接保存在环境变量上(没有任何配置文件)并在不需要对所有组件和模块中的配置执行“要求”的情况下访问它们是否有意义。

我看到的所有示例都使用配置文件,可能与安全或内存有关?

【问题讨论】:

    标签: node.js express environment-variables config


    【解决方案1】:

    配置文件通常用于设置环境变量的默认值,

    在编写测试用例时需要使用默认值或模拟值,

    而且你将把所有的环境变量放在一个更好的管理位置。

    所以如果你有一个环境变量 x,

    在配置文件中你可以保留它

    config.x = 进程.env.x || 'defaultVale 或 mockValue'

    【讨论】:

      【解决方案2】:

      配置文件可让您快速设置机器的整个环境 - 例如 S3 存储桶、API url、访问密钥等。如果您将它们分成单独的 process.env.VARIABLE,那么您需要设置每一个。 .你可能会为它制作一个脚本......现在你又拥有了一个环境文件!

      要访问环境变量,您可以在 nodejs 代码中使用process.env.VARIABLE(始终是字符串),只要在进程启动之前设置变量即可。

      【讨论】:

      • 另外,以后对应用进行 docker 化会更容易
      • 关于配置文件实用程序的好点。所以想法是让配置文件在代码开始时将所有参数传递给 proccess.env.Parametername 而不是直接访问配置文件的要求(有很多要求)。如果在环境变量上拥有密钥(秘密和数据库)的安全性没有问题,这对我来说将是正确的解决方案。
      【解决方案3】:

      另一种可能性是在 nodejs 中使用 .env 文件。我认为您必须在您的应用程序中 npm install dotenv。理想情况下,不同的实例(dev、prod....)有自己的 .env 文件,如果您想访问环境变量,您不必每次都调用 require("dotenv")。一开始就调用它即)在 app.js 中,您可以访问任何子文件中的环境变量。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-29
      • 2015-03-27
      • 2020-12-04
      • 1970-01-01
      • 1970-01-01
      • 2011-12-11
      • 1970-01-01
      相关资源
      最近更新 更多