有没有办法在Node.js代码中读取环境变量?
比如Python的 os.environ['HOME'] .
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' });
使用Node.js时,可以通过 process.env 对象中的键检索环境变量:
process.env
例如
var mode = process.env.NODE_ENV; var apiKey = process.env.apiKey; // '42348901293989849243'
以下是解释setting environment variables in node.js的答案
您可以使用env包来管理每个项目的环境变量:
在项目目录下创建一个 .env 文件,并将所有变量放在那里 .
.env
在应用程序条目文件的顶部添加以下行:require('dotenv').config();
require('dotenv').config();
完成 . 现在,您可以使用 process.env.ENV_NAME 访问环境变量 .
process.env.ENV_NAME
如果要使用Node.js程序中生成的字符串键,例如 var v = 'HOME' ,则可以使用 process.env[v] .
var v = 'HOME'
process.env[v]
否则, process.env.VARNAME 必须在您的程序中进行硬编码 .
process.env.VARNAME
process.env.ENV_VARIABLE
其中 ENV_VARIABLE 是您要访问的变量的名称 .
ENV_VARIABLE
见Node.js docs for process.env .
5 回答
要在Node.JS中检索环境变量,您可以使用 process.env.VARIABLE_NAME ,但不要忘记在process.env上分配属性会隐式地将值转换为字符串 .
避免使用布尔逻辑
相反,你应该做出明确的检查 . 我发现取决于环境名称还有很长的路要走 .
使用Node.js时,可以通过
process.env
对象中的键检索环境变量:例如
以下是解释setting environment variables in node.js的答案
您可以使用env包来管理每个项目的环境变量:
在项目目录下创建一个
.env
文件,并将所有变量放在那里 .在应用程序条目文件的顶部添加以下行:
require('dotenv').config();
完成 . 现在,您可以使用
process.env.ENV_NAME
访问环境变量 .如果要使用Node.js程序中生成的字符串键,例如
var v = 'HOME'
,则可以使用process.env[v]
.否则,
process.env.VARNAME
必须在您的程序中进行硬编码 .其中
ENV_VARIABLE
是您要访问的变量的名称 .见Node.js docs for process.env .