当我使用npm start执行程序时,出现:
Error: bind EADDRINUSE null:80
at Object.exports._errnoException (util.js:896:11)
at exports._exceptionWithHostPort (util.js:919:20)
at cb (net.js:1311:16)
at rr (cluster.js:620:14)
at Worker.<anonymous> (cluster.js:590:9)
at process.<anonymous> (cluster.js:750:8)
at emitTwo (events.js:111:20)
at process.emit (events.js:191:7)
at handleMessage (internal/child_process.js:718:10)
at Pipe.channel.onread (internal/child_process.js:444:11)
CLUSTER: Worker 177 disconnected from the cluster.
CLUSTER: Worker 177 died with exit code 1 (null)
CLUSTER: Worker 181 started
events.js:160
throw er; // Unhandled 'error' event
如果将端口从80更改为8080,程序将执行,但不连接到api.localhost:3000
答案 0 :(得分:1)
EADDRINUSE
表示“ E 错误 ADD 已使用中”
所以您可能还有另一个进程正在监听端口80
在linux上,您可以使用命令netstat -a | grep LISTENING | grep 80
答案 1 :(得分:0)
作为特权用户,您应该能够使用以下命令列出引用TCP端口80的进程:
netstat -plant | grep LISTENING | grep :80
在右列上,您应该找到一个进程名称和相应的PID,该名称将指示谁在该端口上进行监听。
如今,使用基于debian或el7的系统,通常需要安装net-tools
软件包,并附带netstat
命令。
如Gregory NEUT所建议,也许您没有对:80绑定足够的特权。尽管是AFAIR,在这种情况下,您应该会遇到EACCESS
错误。而EADDRESSINUSE
表示另一个应用程序已经在监听TCP:80
。它甚至可能是您的应用程序的先前副本,在后台运行。