在Node.js中读取环境变量

时间:2011-02-02 02:54:29

标签: javascript node.js environment-variables

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

例如Python的os.environ['HOME']

7 个答案:

答案 0 :(得分:1747)

process.env.ENV_VARIABLE

其中ENV_VARIABLE是您要访问的变量的名称。

请参阅Node.js docs for process.env

答案 1 :(得分:120)

使用Node.js时,您可以通过process.env对象中的键检索环境变量:

例如

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

以下是解释setting environment variables in node.js

的答案

答案 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目录中使用它们,所以您不必将任何带有变量的文件推入生产环境。