有没有办法在Node.js代码中读取环境变量?
例如Python的os.environ['HOME']。
os.environ['HOME']
process.env.ENV_VARIABLE
其中ENV_VARIABLE是您希望访问的变量的名称。
ENV_VARIABLE
见Node.js文档#0。
如果您想使用在Node.js程序中生成的字符串键,例如var v = 'HOME',您可以使用process.env[v].
var v = 'HOME'
process.env[v]
否则,process.env.VARNAME必须在您的程序中硬编码。
process.env.VARNAME
使用Node.js时,您可以从process.env对象中按键检索环境变量:
process.env
例如
var mode = process.env.NODE_ENV;var apiKey = process.env.apiKey; // '42348901293989849243'
这是答案,将解释在node.js中设置环境变量
您可以使用env包来管理每个项目的环境变量:
.env
require('dotenv').config();
完成。现在您可以使用process.env.ENV_NAME访问环境变量。
process.env.ENV_NAME
要在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'});
为什么不在.bash_profile文件的用户目录中使用它们,这样您就不必将带有变量的任何文件推送到生产环境中?
.bash_profile
如果您想在执行时查看所有环境变量,只需写入一些nodejs文件,例如server.js:
console.log(process.env);
使用process.env.如果Home是你的环境变量名,那么试试这个:
const HOME = process.env.HOME;
或
const { HOME } = process.env;