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

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

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

EADDRINUSE, Address already in use

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

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


当前回答

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

  sudo pkill node

其他回答

Linux

运行ps并确定节点进程的PID。

然后执行sudo kill PID

窗户

使用tasklist显示正在运行的进程列表:

tasklist /O

然后,像这样(使用tasklist命令获得的PID)杀死节点进程:

taskkill /pid PID

通过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关闭。

一种简单的方法是列出在端口上侦听的所有进程

lsof -i tcp:YOUR_PORT | grep监听

然后你可以杀死他们:

kill -9 {PID}

你可能会遇到这样的情况,即使杀死线程或进程也不会真正终止应用程序(我在Linux和Windows上每隔一段时间就会遇到这种情况)。有时,您可能已经有一个正在运行的实例,但没有关闭。

由于这些情况,我更喜欢在package.json中添加:

"scripts": {
    "stop-win": "Taskkill /IM node.exe /F",
    "stop-linux": "killall node"
},

然后我可以调用它们使用:

npm run stop-win
npm run stop-Linux

如果您愿意,还可以让这些BIN命令带有参数标志。您还可以将它们添加为在try-catch子句中执行的命令。

任务管理器(ctrl+alt+del) -> .使用实例

进程选项卡->

选择“node.exe”进程,点击“结束进程”