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

使用Express与Nodemon时出现EADDRINUSE错误的解决方法咨询

解决Express+Nodemon运行时端口占用报错问题

错误信息(翻译后)

node:events:492
throw er; // 未处理的 'error' 事件
^

Error: listen EADDRINUSE: 地址已被使用 :::80
at Server.setupListenHandle [as _listen2] (node:net:1751:16)
at listenInCluster (node:net:1799:12)
at Server.listen (node:net:1887:7)
at Function.listen (C:\Users\anish\OneDrive\Desktop\node javascript\node_modules\express\lib\application.js:635:24)
at Object. (C:\Users\anish\OneDrive\Desktop\node javascript\express\app.js:21:5)
at Module._compile (node:internal/modules/cjs/loader:1256:14)
at Module._extensions..js (node:internal/modules/cjs/loader:1310:10)
at Module.load (node:internal/modules/cjs/loader:1119:32)
at Module._load (node:internal/modules/cjs/loader:960:12)
at Function.executeUserEntryPoint [as runMain] (node:internal/process/task_queues:82:21) {
code: 'EADDRINUSE',
errno: -4091,
syscall: 'listen',
address: '::',
port: 80
}

Node.js v18.17.0
[nodemon] 应用崩溃 - 等待文件变更后重启...

问题原因

报错EADDRINUSE: 地址已被使用 :::80明确说明:你的Express应用要监听的80端口已经被其他程序占用了。

解决方法

方法一:更换Express监听端口

直接修改app.js里的端口配置,把80换成未被占用的端口(比如3000、8080):

// 原代码示例
app.listen(80, () => {
  console.log('Server running');
});

// 修改后代码
app.listen(3000, () => {
  console.log('Server running on port 3000');
});

修改后重新运行nodemon app.js即可。

方法二:终止占用80端口的进程

如果一定要用80端口,找到占用端口的程序并关闭:

Windows系统操作:

  1. 打开命令提示符,执行:
netstat -ano | findstr ":80"
  1. 复制输出结果最后一列的PID(进程ID,比如1234)
  2. 执行命令终止进程:
taskkill /PID 1234 /F

macOS/Linux系统操作:

  1. 打开终端,执行:
lsof -i :80
  1. 复制对应进程的PID,执行:
kill -9 1234

(把1234替换成实际查到的PID)

方法三:检查本地服务

Apache、Nginx这类Web服务器默认会占用80端口,如果你安装了这类服务,先关闭它们再启动Express应用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.15 04:25:22