尽管需要dotenv从.env文件加载环境变量,但它们仍然是从machine/etc/environment加载的



我在开发环境中使用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中的变量。

相关内容

  • 没有找到相关文章

最新更新