有没有方法读取Node.js代码中的环境变量?

比如Python的os.environ['HOME']。


当前回答

使用Node.js时,您可以从process.env对象中按关键字检索环境变量:

例如

var mode   = process.env.NODE_ENV;
var apiKey = process.env.apiKey; // '42348901293989849243'

以下是解释在node.js中设置环境变量的答案

其他回答

为什么不在.bash_profile文件的Users目录中使用它们,这样就不必将任何带有变量的文件推送到生产环境中了?

要在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访问环境变量。

使用Node.js时,您可以从process.env对象中按关键字检索环境变量:

例如

var mode   = process.env.NODE_ENV;
var apiKey = process.env.apiKey; // '42348901293989849243'

以下是解释在node.js中设置环境变量的答案

如果您想使用Node.js程序中生成的字符串键,例如var v='HOME',可以使用进程env[v]。

否则,必须在程序中对process.env.VARNAME进行硬编码。