You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js读取.env变量返回undefined问题的排查与解决

解决Node.js读取.env变量返回undefined的问题

这个问题我碰到过好多次啦,别着急,咱们一步步排查解决:

  • 第一步:确保安装并正确引入dotenv包
    Node.js本身不会自动加载.env文件,得靠dotenv这个包来帮我们处理。先确认你有没有安装它:
    运行安装命令:

    npm install dotenv
    # 或者用yarn
    yarn add dotenv
    

    然后在你的server.js最顶部(一定要在其他代码之前)添加这段代码:

    // CommonJS语法
    require('dotenv').config();
    
    // 如果你的项目用ES模块(package.json里有"type": "module"),就用这个:
    // import dotenv from 'dotenv';
    // dotenv.config();
    
  • 第二步:检查.env文件的位置是否正确
    确保.env文件和你的server.js在同一个项目根目录下。如果它在其他子文件夹里,你需要在config时指定路径:

    require('dotenv').config({ path: './src/.env' }); // 替换成你的.env实际路径
    

    结合你提供的文件层级截图,仔细核对一下位置,别把.env放到了子目录里哦。

  • 第三步:检查.env文件的语法是否规范
    .env的语法很严格,注意这几点:

    • 变量名和值之间不要加空格:比如val = hello是错的,必须写成val=hello
    • 值不需要加引号:val="hello"虽然有时候能生效,但容易出问题,尽量用无引号的写法
    • 不要在变量名前加export:比如export val=hello是多余的,dotenv会自动处理
  • 第四步:重启你的服务器
    如果你用了nodemon之类的自动重启工具,有时候修改.env后它不会自动触发重启,这时候手动重启一下服务器,再运行node server.js试试。

  • 第五步:验证环境变量是否真的被加载
    在dotenv.config()之后,打印所有环境变量看看:

    require('dotenv').config();
    console.log(process.env); // 看看输出里有没有val这个键
    

    如果输出里没有val,说明.env文件没被正确加载;如果有但值不对,再检查.env的内容或者是否有其他地方覆盖了这个变量。

  • 第六步:排查是否有环境变量被覆盖
    系统环境变量或者运行命令时手动设置的变量会优先于.env里的内容。比如你如果用val=world node server.js启动服务器,那process.env.val会是world而不是.env里的hello。可以检查一下系统里有没有同名的环境变量。

按照上面的步骤排查下来,基本就能解决process.env.val返回undefined的问题啦!

内容的提问来源于stack exchange,提问作者user7927930

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:51:20