有没有办法在Node.js代码中读取环境变量?
例如Python的os.environ['HOME']
。
答案 0 :(得分:1747)
答案 1 :(得分:120)
使用Node.js时,您可以通过process.env
对象中的键检索环境变量:
例如
var mode = process.env.NODE_ENV;
var apiKey = process.env.apiKey; // '42348901293989849243'
的答案
答案 2 :(得分:50)
如果你想使用你的Node.js程序中生成的字符串密钥,比如var v = 'HOME'
,你可以使用
process.env[v]
。
否则,process.env.VARNAME
必须在您的程序中进行硬编码。
答案 3 :(得分:18)
要在Node.JS中检索环境变量,可以使用 process.env.VARIABLE_NAME ,但不要忘记在process.env上分配属性会将值隐式转换为字符串。 / p>
即使您的.env文件定义了 SHOULD_SEND = false 或 SHOULD_SEND = 0 之类的变量,这些值也会被转换为字符串(分别为“ false”和“ 0” ),而不是布尔值。
if (process.env.SHOULD_SEND) {
mailer.send();
} else {
console.log("this won't be reached with values like false and 0");
}
相反,您应该进行显式检查。我发现取决于环境名称的作用很长。
db.connect({
debug: process.env.NODE_ENV === 'development'
});
答案 4 :(得分:14)
您可以使用env包来管理每个项目的环境变量:
.env
文件并放入所有文件
变量那里。require('dotenv').config();
完成。现在,您可以使用process.env.ENV_NAME
访问环境变量。
答案 5 :(得分:4)
如果您想在执行时查看所有环境变量,只需写入一些 nodejs 文件,例如 server.js:
console.log(process.env);
答案 6 :(得分:0)
为什么不在.bash_profile的Users目录中使用它们,所以您不必将任何带有变量的文件推入生产环境。