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

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

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

EADDRINUSE, Address already in use

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

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


当前回答

通过Cmd打开Windows

1/2。Search => write CMD => open node.js命令提示符


2/2。执行windows命令:taskkill

结束一个或多个任务或流程。

taskkill /f /im node.exe

/f - force结束

/im -要终止的进程的镜像名称。

Node.exe -可执行文件

Windows -手动任务管理器

这个命令相当于在详细信息选项卡下进入任务管理器并选择节点任务(在我看来很整洁)。

结束任务

Visual studio

有时有多个终端/任务(客户端/服务器等)。 选择并按ctrl + c关闭。

其他回答

出现这个问题的原因是:

任何一个应用程序都可以在这个端口上运行,比如Skype。 节点可能已经崩溃,端口可能没有被释放。 您可能已经尝试启动多个服务器。为了解决这个问题,可以维护一个布尔值来检查服务器是否已经启动。只有当boolean返回false或undefined时才应该启动;

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

  sudo pkill node

只杀死使用给定PORT的节点进程。正如其他人提到的,在bash中可以使用kill $(lsof -t -i:PORT)

这里有一个Windows解决方案(有一个方法!): Netstat -bona | findstr "。0:PORT +0.0.0.0:0 +LISTENING" | for /f "令牌=5" %t in ('more') do taskkill /PID:%t /f。你需要一个提升终端(在VSCode中,你需要通过提升来打开自己,因为集成终端不能被提升)。

PS:如果findstr不可用,您可以简单地使用查找和替换空格“+”(非正则模式)

对于windows,打开任务管理器,找到node.exe进程。用结束任务杀死所有敌人

这发生在我身上,因为我在我的ubuntu中打开了多个visual studio实例而没有注意到它,其中一个实例中已经运行了xdebug。