我正在运行NodeJS Express应用
目前有dev
env,test
env和prod
env。
但是,数据库连接设置在代码中,是否存在安全和最佳实践方式来存储数据库配置和所有其他配置为JSON文件格式,方法是在模块中声明它们(单独用于要导出的每个env或一个模块中的每个env或全部,可能有一个default.JSON,Dev.JSON,Prod.JSON ...等),然后通过为app.js中的正确环境设置正确的配置来相应地要求它们
我希望在不依赖任何第三方软件包(如.env或ncof。
)的情况下实现此目的答案 0 :(得分:0)
您可以根据环境要求文件。
const env = 'test'; // This value can be taken from config or .env
const configs = require(`../path/${env}`);
console.log('DB Config', configs.DB_PATH);
根据您的环境,您可以加载该文件。环境的价值可以从.env或任何其他配置中检索。
答案 1 :(得分:0)
大多数主要NodeJ托管服务提供商使用简单的环境变量。你可以用这个:
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