读取Node.js中的环境变量

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

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

789871 次浏览
process.env.ENV_VARIABLE

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

Node.js文档#0

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

否则,process.env.VARNAME必须在您的程序中硬编码。

使用Node.js时,您可以从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访问环境变量。

要在Node.JS中检索环境变量,您可以使用process.env.VARIABLE_NAME,但不要忘记在process.env上分配属性将隐式地将值转换为字符串。

避免布尔逻辑

即使您的. env文件定义了像SHOULD_SEND=falseSHOULD_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文件的用户目录中使用它们,这样您就不必将带有变量的任何文件推送到生产环境中?

如果您想在执行时查看所有环境变量,只需写入一些nodejs文件,例如server.js:

console.log(process.env);

使用process.env.如果Home是你的环境变量名,那么试试这个:

const HOME = process.env.HOME;

const { HOME } = process.env;