使用dotenv时JS无法读取上级目录.env文件变量求助
解决dotenv无法读取上级目录.env文件的问题
问题核心是dotenv默认会在当前Node进程的工作目录下查找.env文件,你的index.js位于examples目录,执行时默认会在examples目录下找.env,但你的.env在项目根目录,所以读取不到。
两种解决办法
方法1:在代码中指定.env文件路径
借助Node的path模块,明确指向根目录的.env文件,修改index.js代码如下:
const path = require('path'); // __dirname 是当前文件(index.js)所在的目录,../ 回到项目根目录 require('dotenv').config({ path: path.resolve(__dirname, '../.env') }); console.log(process.env.DOG);
方法2:调整脚本执行的工作目录
在项目根目录下执行index.js,而不是进入examples目录执行:
# 项目根目录下运行 node examples/index.js
这种情况下dotenv会默认在当前工作目录(根目录)找到.env文件,无需修改代码。
额外验证步骤
可以在代码中先打印当前工作目录,确认问题:
console.log(process.cwd()); // 输出当前Node进程的工作目录
内容的提问来源于stack exchange,提问作者Leon
相关产品推荐
相关产品推荐

