Node.JS / Express存储JSON中不同环境的DB配置

时间:2018-01-11 13:17:40

标签: json node.js express

我正在运行NodeJS Express应用

目前有dev env,test env和prod env。

但是,数据库连接设置在代码中,是否存在安全和最佳实践方式来存储数据库配置和所有其他配置为JSON文件格式,方法是在模块中声明它们(单独用于要导出的每个env或一个模块中的每个env或全部,可能有一个default.JSON,Dev.JSON,Prod.JSON ...等),然后通过为app.js中的正确环境设置正确的配置来相应地要求它们

我希望在不依赖任何第三方软件包(如.env或ncof。

)的情况下实现此目的

2 个答案:

答案 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