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

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


当前回答

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

process.env.ENV_VARIABLE

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

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

要在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'
 });

使用process.env。如果Home是您的env变量名,请尝试以下操作:

const HOME = process.env.HOME;

Or

const { HOME } = process.env;

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

console.log(process.env);