Node.js使用dotenv加载.env文件出现SyntaxError语法错误怎么解决?
问题根因
你触发报错的核心原因是dotenv加载配置的写法错误:dotenv.config()的path参数需要传入.env文件的字符串格式路径,而你错误使用了require('./.env')写法。Node.js的require()方法会将目标文件作为JS模块尝试编译执行,.env本身不是合法的JS文件,解析到第一行的@符号时就会抛出语法异常。
修复方案
- 修改
server.js中dotenv的加载代码,替换原有的require('dotenv').config({ path: require('./.env') });为以下任意一种即可:- 若
.env文件和server.js同处于项目根目录,直接用默认配置即可:require('dotenv').config(); - 若需要手动指定路径,直接传入字符串格式的文件路径:
require('dotenv').config({ path: './.env' });
- 若
- 可选优化:调整
.env文件的写法,移除键值对之间的多余空格,避免部分解析器识别异常:USERNAME=example@gmail.com PASSWORD=********** SEND_TO_EMAIL=example2@gmail.com API_HOST=http://localhost:5000/contact
额外注意事项
后续使用Gmail作为发信服务时,不要直接使用账号密码验证,需要先开启Google账号的两步验证,再生成应用专用密码填入PASSWORD配置项,否则会被Gmail的安全策略拦截导致发信失败。
内容的提问来源于stack exchange,提问作者Kwall
相关产品推荐
相关产品推荐

