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

Windows下Nodemon提示端口已占用,释放后仍自动占用求助

解决Windows下Nodemon启动Express始终提示端口被占用的问题

可能的原因及解决步骤

1. 彻底清理所有Node.js进程

有时候Nodemon重启时会残留未终止的子进程,导致端口被持续占用。执行以下命令一次性杀掉所有Node进程:

taskkill /F /IM node.exe

之后再重新启动Nodemon即可。

2. 排查代码中的重复监听逻辑

虽然你的index.js看起来只调用了一次app.listen,但可以添加日志确认监听的端口,同时排查是否有其他被引入的文件存在额外的端口监听:
修改index.js中的监听代码:

const server = app.listen(app.get('port'), () => {
  console.log(`Server is running on port ${app.get('port')}`);
});

启动后观察日志输出的端口是否符合预期,同时确认没有其他代码片段重复调用listen方法。

3. 检查全局环境变量PORT

你的代码使用process.env.PORT || 3000来设置端口,如果Windows全局设置了PORT变量,可能导致每次启动都固定使用该端口(而该端口可能被其他程序占用)。

  • 查看当前PORT变量值:
echo %PORT%
  • 若有值,清空变量后再启动:
set PORT=
nodemon index.js

4. 直接在启动命令中指定端口

绕过环境变量,直接在启动时指定端口:

  • 命令提示符:
set PORT=8080 && nodemon index.js
  • PowerShell:
$env:PORT=8080; nodemon index.js

尝试不同的端口,确认是否还会出现占用提示。

5. 更新Nodemon版本

旧版本Nodemon可能存在进程管理的bug,更新到最新版本:

npm install -g nodemon
# 或本地更新
npm install nodemon --save-dev

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 09:57:43