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

Node.js环境变量始终为undefined问题求助

解决方法

有三种方式可以让Node.js脚本读取到PORT变量:

  • 修改.env文件,将变量设为环境变量
    在.env文件里给变量加上export前缀:

    export PORT=5000
    

    重新执行source .env后,再运行Node脚本,process.env.PORT就能拿到5000了。

  • 运行脚本时显式传递变量
    不用修改.env,直接在运行脚本的命令里把shell变量传给Node进程:

    PORT=$PORT node your-script.js
    
  • 使用dotenv包(无需source)
    如果不想手动处理shell变量,可以用Node.js的dotenv包直接加载.env文件:

    1. 安装包:
      npm install dotenv
      
    2. 在脚本最顶部添加:
      require('dotenv').config();
      

    之后直接运行node your-script.js就能读取到.env里的PORT变量。

原因说明

你用source .env加载的PORT=5000只是当前shell的本地变量,不是环境变量。子进程(比如Node.js脚本)只会继承父进程的环境变量,无法访问父shell的本地变量。这就是为什么echo $PORT在当前shell里能输出值,但Node脚本里process.env.PORT是undefined的原因。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.14 04:52:05