繁体   English   中英

读取Node.js中的环境变量

[英]Read environment variables in Node.js

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

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

process.env.ENV_VARIABLE

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

有关process.env请参阅Node.js 文档

使用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=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'
 });

您可以使用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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM