我正在运行 NodeJS Express 应用程序,
当前有 dev
env、test
env 和 prod
env。
但是,数据库连接设置在代码中,是否有一种安全且最佳实践的方法来以 JSON 文件格式存储数据库配置和所有其他配置,方法是在模块中声明它们(分别为每个环境或要导出的一个模块中的所有配置,可能有一个 default.JSON、Dev.JSON、Prod.JSON...等),然后通过在 app.js 中为正确的环境设置正确的配置来相应地要求它们。
我想在不依赖任何第三方包(如 .env 或 ncof)的情况下实现这一目标。
最佳答案
大多数主要 NodeJs 托管提供商都使用简单的环境变量。您可以使用这个:
process.env.NODE_ENV
要自行定义它,例如在本地进行“开发”,您可以执行以下操作:
NODE_ENV=developpment node yourapp.js
因此,我建议您使用配置工具,例如 nconf(有一些很好的竞争对手)。例如,您可以这样做:
nconf
.argv() // Takes arguments from CLI
.file('./env.' + process.env.NODE_ENV + '.json') // takes from specific env file
.file('package', './package.json'); // takes from package.json
这里的优先级是从最重要到最不重要: 1) argv 2)具体环境文件 3)package.json
关于json - Node.JS/Express 在 JSON 中存储不同环境的数据库配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48208046/