[英]Read environment variables in Node.js
有没有办法读取Node.js代码中的环境变量?
例如 Python 的os.environ['HOME']
。
使用Node.js 时,您可以通过 key 从process.env
对象中检索环境变量:
例如
var mode = process.env.NODE_ENV;
var apiKey = process.env.apiKey; // '42348901293989849243'
这是将解释在 node.js 中设置环境变量的答案
如果您想使用在 Node.js 程序中生成的字符串键,例如var v = 'HOME'
,您可以使用process.env[v]
。
否则, process.env.VARNAME
必须在您的程序中进行硬编码。
要在 Node.JS 中检索环境变量,您可以使用process.env.VARIABLE_NAME ,但不要忘记在 process.env 上分配属性会将值隐式转换为字符串。
即使您的 .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'
});
您可以使用env包来管理每个项目的环境变量:
.env
文件并将所有变量放在那里。require('dotenv').config();
完毕。 现在您可以使用process.env.ENV_NAME
访问您的环境变量。
使用 process.env。 如果 Home 是您的环境变量名称,那么试试这个:
const HOME = process.env.HOME;
或者
const { HOME } = process.env;
如果您想在执行时查看所有环境变量,只需写入一些 nodejs 文件,如server.js:
console.log(process.env);
为什么不在.bash_profile
文件的 Users 目录中使用它们,这样您就不必将任何带有变量的文件推送到生产环境中?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.