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

Nodemon启动后端口号显示undefined问题求助

解决Nodemon启动后PORT显示undefined的问题

问题重现

启动日志显示:

[nodemon] 2.0.22
[nodemon] to restart at any time, enter `rs`
[nodemon] watching path(s): *.*
[nodemon] watching extensions: js,mjs,json
[nodemon] starting `node backend/server server.js`
**Server started on PORT: undefined in DEVELOPMENT node.**

排查&解决步骤

1. 修正错误的启动命令

日志里的node backend/server server.js是错误的——这会把backend/server当作主文件执行,server.js作为参数传入,完全偏离预期。正确的启动命令应该直接指向你的server.js文件:

  • 如果server.js在backend文件夹下,启动命令应为:node backend/server.js
  • 建议在package.json里配置规范的启动脚本:
    "scripts": {
      "dev": "nodemon backend/server.js"
    }
    
    之后执行npm run dev启动服务。

2. 用绝对路径加载.env文件

你当前使用的相对路径是相对于启动命令的工作目录,而非server.js所在目录,很容易因启动位置不同导致找不到配置文件。改用__dirname拼接绝对路径,确保无论从哪个目录启动都能定位到配置:

const app = require('./app');
const dotenv = require('dotenv');
const path = require('path'); // 引入path模块

// 使用绝对路径加载配置文件
dotenv.config({ path: path.join(__dirname, 'config/config.env') })

app.listen(process.env.PORT, () => {
    console.log(`Server started on PORT: ${process.env.PORT} in ${process.env.NODE_ENV} node.`)
})

3. 验证.env文件的正确性

  • 确保config/config.env里的配置格式正确,没有多余空格或引号:
    PORT=5000
    NODE_ENV=DEVELOPMENT
    
  • 可以在dotenv.config后添加测试代码,确认配置是否加载成功:
    console.log("Loaded PORT:", process.env.PORT);
    console.log("Config file path:", path.join(__dirname, 'config/config.env'));
    
    启动后查看控制台输出,确认PORT值和配置文件路径是否正确。

4. 确认依赖安装状态

虽然你提到已安装依赖,可重新安装确保没有异常:

npm install dotenv --save

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 08:10:15