在Node.js代码中,有没有一种方法可以读取环境变量?
例如Python中的os.environ['HOME']
。
在Node.js代码中,有没有一种方法可以读取环境变量?
例如Python中的os.environ['HOME']
。
在使用Node.js时,您可以通过键从process.env
对象检索环境变量:
例如:
var mode = process.env.NODE_ENV;
var apiKey = process.env.apiKey; // '42348901293989849243'
以下是解释如何在 node.js 中设置环境变量的答案:setting environment variables in node.js
process.env
是内置在 Node.js API 中的。 - Jason Axelson如果您想在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'
});
THIS_FEATURE=0 THAT_FEATURE=1 MAIL_TO='me@example.org' ./myapp
。 - undefinedvar v = 'HOME'
,你可以使用process.env[v]
。否则,在你的程序中必须硬编码process.env.VARNAME
。process.env['HOME']
? - AlgoRythm您可以使用dotenv包来管理每个项目的环境变量:
.env
文件,并将所有变量作为VAR_NAME=value
对放入其中。require('dotenv').config();
。现在,您可以使用process.env.VAR_NAME
访问您的环境变量。
env
库来管理和加载环境变量。 - Huy Voenvdir
工具以非特定于 Node.js 的方式执行相同的操作。 - Chris Johnsonprocess.env.MY_VAR
,但直到我加上了 require 语句才起作用。谢谢! - juliangonzalez使用 process.env。 如果 Home 是您的环境变量名称,请尝试以下操作:
const HOME = process.env.HOME;
或者
const { HOME } = process.env;
console.log(process.env);
#安装npm包dotenv
npm i dotenv
#让我们创建一个名为.env的文件
#在.env文件中,我要做的是...
DATABASE_CONFIG={"host":"localhost","user":"root","password":"password123"}
BASE_URL=192.168.163.128;
#现在我们将创建index.js文件,其中包含以下方式...require('dotenv').config();
// 示例 - 01: const url = process.env.BASE_URL; console.log("从环境中读取的基本URL:" + url);
// 示例 - 02:
const databaseConfigString = process.env.DATABASE_CONFIG; console.log(databaseConfigString);
let databaseConfig;
try { databaseConfig = JSON.parse(databaseConfigString); } catch (error) { console.error('解析DATABASE_CONFIG时出错:', error.message); }
if (databaseConfig) { console.log('数据库配置:', databaseConfig); console.log('主机:', databaseConfig.host); console.log('用户:', databaseConfig.user); console.log('密码:', databaseConfig.password); }
首先,您需要安装以下库,确保您在项目的根目录中:
npm i dotenv
# test variable
TESTVARIABLE='The test variable is working, value pulled from local!'
require("dotenv").config();
const message = process.env['TESTVARIABLE'];
.bash_profile
文件中使用它们,这样你就不必将任何带有变量的文件推送到生产环境中了?.bash_profile
,那么它将为该用户的环境设置它,但如果您在那里运行多个实例,则必须为其设置多个环境变量,而不是只有一个。例如,如果您设置了PORT变量,则必须将其设置为PORT_1等,但如果您通过.env使用它,则可以使用具有不同PORT号码的.env文件的相同代码。 - Raheel Shahzad
env
不会显示它,在节点进程退出后,在同一 shell 中也不会显示它。 - Marko Bonaciprocess.env.FOO = "foo";
是可行的。 - chicksprocess.env
被清理过滤掉了。只有以REACT_ENV_
开头的变量才可用。请参阅:https://github.com/facebookincubator/create-react-app/blob/master/packages/react-scripts/template/README.md#adding-custom-environment-variables。 - Mark EdingtonREACT_APP_
。 - Mr. 14