每个应用可能设置 不同的环境?
例如,我想以不同的方式设置环境MYSQL_USER。 每个应用都有一个config.js,其中包含如下字符串:
exports.mysql_user = process.env.MYSQL_USER || 'devuser';
我看到可以添加一些模块来管理外部env文件。 如果可能的话,我想管理没有模块。
有办法做到这一点吗?
我看到有可能以这种方式加载ENV:
ENV_1="first value" ENV_2="second value" node app.js
或(在我的情况下)
ENV_1="first value" ENV_2="second value" forever start app.js
答案 0 :(得分:0)
如果您想将环境变量传递给NodeJS,是的,您可以使用process.env
(link)访问环境。还有process.argv
(link),它的工作方式类似。这些可以在批处理或启动脚本中使用(尽管小心重叠环境,正常情况下)。
在代码中使用它非常简单:
var port = 3000;
switch( process.env.ENV_1 )
{
case "devuser":
port = 3001;
break;
case "admin":
port = 3002;
break;
}
console.log("Starting app as '"+ process.env.ENV_1 +"' on port " + port );
process.exit(0);
可以直接从命令行运行:
> ENV_1=devuser node test.js; ENV_1=admin node test.js
Starting app as 'devuser' on port 3001
Starting app as 'admin' on port 3002
论证版本。请注意索引用于此目的 - 与上面的代码相同,但switch
代替process.argv[2]
。
运行如下:
> node test.js devuser; node test.js admin
Starting app as 'devuser' on port 3001
Starting app as 'admin' on port 3002