我有一个简单的服务器运行在node.js使用连接:

var server = require('connect').createServer();
//actions...
server.listen(3000);

在我的代码中,我有实际的处理程序,但这是基本的思想。我一直遇到的问题是

EADDRINUSE, Address already in use

我收到这个错误时再次运行我的应用程序后,它以前崩溃或错误。因为我没有打开一个新的终端实例,所以我用ctr + z关闭了这个进程。

我非常确定我所要做的就是关闭服务器或连接。我尝试在进程中调用server.close()。(“退出”,…);运气不好。


当前回答

供你参考,你可以用一个命令sudo fuser -k 3000/tcp来终止进程。这可以用于开发中常用的所有其他端口,如8000、8080或9000。

其他回答

我找到了这个解决办法,试试吧 使用sudo给予许可

  sudo pkill node

windows用户:打开任务管理器,结束任务的nodejs.exe文件,可以正常工作。

我通常用

npx kill-port 3000

或者在我的mac上。

killall node

我正在使用调试器,只是没有停止使用Ctrl+C运行的进程。当我想开始调试时,我得到了这个错误。

你也可以通过命令行方式:

ps aux | grep node

来获取进程id。

然后:

kill -9 PID

在kill时执行-9会发送SIGKILL(而不是SIGTERM)。 SIGTERM有时会被节点忽略。