我在开发环境中使用dotenv从.env文件加载环境变量。
server.js
const { config } = require("dotenv");
config();
console.log("🚀 ~ file: server.js ~ line 7 ~ config()", config());
console.log(
"🚀 ~ file: server.js ~ line 10 ~ process.env.ADMIN_DB_URI",
process.env.ADMIN_DB_URI
);
这就是记录的内容:
🚀 ~ file: server.js ~ line 7 ~ config() {
parsed: {
ADMIN_DB_URI: 'URI_THAT_IS_SAVED_IN_DOTENV_FILE',
}
}
🚀 ~ file: server.js ~ line 10 ~ process.env.ADMIN_DB_URI URI_THAT_IS_SAVED_IN_/ETC_/ENVIRONMENT_FILE
因此,从.env文件加载环境变量ADMIN_DB_URI
显然可以正常工作,正如您在执行config
函数的结果日志中看到的那样。
但是,当我在那之后记录process.env.ADMIN_DB_URI时,它会记录存储在/etc/environment
中的值。
这令人困惑,我不明白为什么会发生这种事。
几天后,我发现了发生这种情况的原因
如果您的环境变量同时存在于.env
文件和/etc/environment
中,nodejs将加载一个/etc/environment
。
所以我所要做的就是重命名.env
中的变量。