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
相关产品推荐
相关产品推荐

