繁体   English   中英

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

[英]How to load config json as environment variable nodejs

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

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

我想加载特定的 env.json 作为环境变量的一部分(对于 dev dev.json 的所有键都导出为应用程序中的全局变量),而不是将其复制到应用程序的 config.json 中,以便同一个应用程序可以在不同的环境中使用。 如何做到这一点。

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

请帮忙。

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

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

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

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

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

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

然后将文件加载为:

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

其中 process.env.NODE_ENV 值可以是 development/production/test

你必须开始你的应用程序

NODE_ENV=development node app.js

为了这个工作。

如果您从脚本运行项目,则将 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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM