如何将config json加载为环境变量nodejs

时间:2017-09-11 07:17:59

标签: javascript json node.js

我是节点js的新手。我对不同的环境有不同的配置viz dev,prod等。目前在创建我的应用程序包时,我将.json复制到config.json,然后将config.json导出为配置变量(全局)并在整个应用程序中使用它。

config = require(__dirname + '/config/config'); (config.httpProxy && config.httpProxy.enabled);

我想加载特定的env.json作为环境变量的一部分(对于dev dev.json的所有键都在app中导出为全局变量)而不是将其复制到app的config.json中,以便可以在不同的环境怎么做。

PS:对于应用程序打包支持和依赖关系管理,我使用gulp和npm。

请帮忙。

3 个答案:

答案 0 :(得分:0)

你可以这样命名你的文件:

config.development.json
config.production.json
config.test.json

然后将文件加载为:

config = require(__dirname + '/config/config.' + process.env.NODE_ENV);

其中process.env.NODE_ENV值可以是开发/生产/测试

你必须以

开始申请
NODE_ENV=development node app.js

让这个工作。

答案 1 :(得分:0)

如果从脚本运行项目,则将NODE_ENV设置为package.json文件。

{
   ...
  "scripts": {
    "nodemon:server": "NODE_ENV=dev NODE_PATH=. nodemon --exec \"babel-node --stage 1\" server.js",
     "prod:server": "NODE_ENV=prod NODE_PATH=. nodemon --exec \"babel-node --stage 1\" server.js"

  },
  "author": "'Shubham Batra'",
  "license": "MIT",
  ....
}

" prod:server":" NODE_ENV = prod NODE_PATH =。 nodemon --exec \" babel-node --stage 1 \" server.js"

比在config,js文件中使用,例如。

if (process.env.NODE_ENV === 'test' ) {
    url = 'http://abc:3000';
    dbUrl= 'xyz';
    password = '***';

} else if (process.env.NODE_ENV === 'prod') {
    url = 'http://def:3000';
   ...
}
export default {

  conf: {
   url,
    dbUrl,
   ...
   }
}

之后,您可以在项目的任何位置导入此配置文件并使用conf

答案 2 :(得分:0)

我建议你使用这个名为config的模块来处理你所有的env配置文件。 https://www.npmjs.com/package/config

只需创建一个名为config的文件夹,并将其中的文件设置为:

1. development.json
2. qa.json
3. production.json

启动服务器时提供其他人提到的相关环境。 然后,您可以使用配置文件中提到的任何属性。