Node.js运行Express服务报EADDRINUSE端口占用错误,换端口杀进程仍无效
Node服务EADDRINUSE端口占用报错解决方案及代码问题修复
端口占用问题彻底解决步骤
- 先精准定位占用端口的进程,不要直接批量杀node进程,Windows下执行命令:
netstat -ano | findstr :5002,命令输出最后一列即为占用端口的进程PID - 用PID强制杀死对应进程:
taskkill /F /PID 你查到的PID数值 - 若操作后仍提示占用,排查WSL2、Docker等虚拟化环境的进程,Windows会和虚拟化环境共享端口,进入WSL2执行
sudo lsof -i :5002查到PID后执行sudo kill -9 PID数值即可 - 上述操作均无效时,重置Windows TCP/IP栈:执行
netsh int ip reset后重启电脑即可修复底层网络故障
代码隐藏bug修复
你判断代码无异常是错误的,当前代码存在三处可导致运行失败的问题:
- 新增接口请求方法错误:标注为
Inser A beer的接口错误使用了app.delete方法,修改为app.post即可 - 插入SQL语法错误:
INSERT INTO beers SET = ?多写了多余的等号,且query方法多传入了无用的[req.params.id]参数,修正为如下代码:
connection.query('INSERT INTO beers SET ?', params, (err,rows) => {
- 日志模板字符串语法错误:监听端口的日志错误使用了单引号和
$()变量符,修正为:
app.listen(port,()=>console.log(`listen on port ${port}`))
内容的提问来源于stack exchange,提问作者user11466949
相关产品推荐
相关产品推荐

