Node.js中读取.env文件变量显示undefined的解决方法
解决dotenv无法读取.env变量的问题
问题场景
项目根目录的.env文件定义变量:
CHECK_INTERVAL=5
test-env.js代码:
require("dotenv").config() console.log(process.env.CHECK_INTERVAL)
执行命令node test-env.js后输出undefined,已确认dotenv包安装正常。
解决方法
校验.env文件的命名与格式
- 确保文件名为
.env,无额外后缀(如.env.txt)或空格 - 变量定义遵循
KEY=VALUE格式,等号前后不要加空格,值无需额外引号(除非包含空格/特殊字符)
- 确保文件名为
手动指定.env文件路径
若Node执行的工作目录与项目根目录不一致,dotenv可能无法自动找到文件。可通过path模块明确路径:const path = require('path'); require('dotenv').config({ path: path.resolve(__dirname, '.env') }); console.log(process.env.CHECK_INTERVAL);__dirname代表当前脚本所在目录,结合path.resolve能保证路径精准指向项目根目录的.env。确认终端执行目录
执行node test-env.js时,终端当前工作目录必须是项目根目录。若在子目录执行命令,dotenv会默认读取终端当前目录下的.env,而非脚本所在目录的文件。重新安装dotenv
偶尔版本兼容问题会导致异常,尝试重新安装依赖:npm uninstall dotenv npm install dotenv --save
内容的提问来源于stack exchange,提问作者trek lucifer
相关产品推荐
相关产品推荐

