Express服务启动报EADDRINUSE错误,taskkill命令参数错误如何解决?
问题解决方案
1. 解决端口占用错误(EADDRINUSE)
你的server/index.js代码中重复调用了两次app.listen(PORT),这会导致Express尝试两次绑定同一个端口3001:第一次绑定成功输出日志,第二次绑定失败抛出端口占用错误。
修复后的代码:
const express = require("express"); const PORT = process.env.PORT || 3001; const app = express(); app.get("/api", (req, res) => { res.json({ message: "Hello from Express!" }); }); // 仅保留一个listen调用 app.listen(PORT, () => { console.log(`Server listening on ${PORT}`); });
2. 修复taskkill命令错误
你使用的taskkill /f/im server.js存在两个问题:
- 参数格式错误:
/f和/im是独立参数,必须用空格分隔; - 目标进程名错误:
server.js不是进程名称,Node.js服务的进程名是node.exe。
正确命令:
- 终止所有Node.js进程:
taskkill /f /im node.exe - 仅终止占用3001端口的进程:
- 先查找占用端口的PID:
netstat -ano | findstr :3001 - 通过PID终止进程(将
<PID>替换为上一步得到的数字):taskkill /f /pid <PID>
- 先查找占用端口的PID:
内容的提问来源于stack exchange,提问作者Srushti Patil
相关产品推荐
相关产品推荐

