[英]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.