我正在尝试为不同的环境配置环境变量。到目前为止,我已经定义了环境变量:
app/config.json:
"development": {
"PORT": 3000,
"APP_SECRET_KEY": "asdf",
"DB_NAME": "sadf",
"DB_USER": "sadf",
"DB_USER_PASSWORD": "asdf",
"DB_HOST": "asdf",
"DB_PORT": 5432,
"DB_SEARCHPATH": "asdf"
},
"test": {
"PORT": 3000,
"APP_SECRET_KEY": "fdas",
"DB_NAME": "fdas",
"DB_USER": "fdsa",
"DB_USER_PASSWORD": "fdsa",
"DB_HOST": "fdsa",
"DB_PORT": 5432,
"DB_SEARCHPATH": "fdsa"
}
}
在此之后,我不知道在哪里/如何告诉节点使用dev或测试变量,具体取决于我想要运行的环境。有人可以帮助或指向我的教程吗?我还没有找到关于此的整体教程..
提前致谢。
答案 0 :(得分:1)
首先,我建议您将配置文件更改为js并像其他任何模块一样导入它们,这样可以为配置添加逻辑。 在这个例子中,我根据名为NODE_ENV的环境变量选择我的env。
var config = function () {
switch(process.env.NODE_ENV) {
case 'development':
return {...}
case 'test':
return {...}
....}
module.exports = config();
这样您就不必每次都重复选择环境的逻辑。
答案 1 :(得分:0)
我通常在app-boot上做类似的事情,将动态配置复制到环境配置:
var config = require('./config');
var env = process.env.NODE_ENV || 'development';
var envConfig = config[env];
// copy config to proceed.env
for(var key in config) {
process.env[key] = config[key];
}