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

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

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

EADDRINUSE, Address already in use

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

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


当前回答

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

其他回答

Win10, git bash v2.15, node v8.9.1, npm v5.5.1

我有一个包裹。Json脚本启动节点:"start": "node index.js"

无论何时我使用它,不管我是否用ctrl+c杀死它,我都遇到了这个问题。

如果我只是从git bash运行node index.js而不是npm run start并用ctrl+c杀死,我永远不会得到这个错误。

我不知道为什么,但我想这可能会帮助到一些人。

在我的例子中,这个问题是由NodeJS环境引起的

两种解决方案:

打开任务管理器,关闭所有Nodejs进程(名称:Node.js JavaScript Runtime) 尝试将服务器的端口从3000更改为当前未被使用的其他端口(例如:3111)。

ps aux | grep node
kill -9 [PID] (provided by above command)

描述:


Ps将给出进程状态,aux提供a:所有用户进程,u:用户自己的进程,x:所有其他未连接到终端的进程的列表。 管道符号:|将传递ps aux的结果以进行进一步操作。 Grep将从ps aux提供的列表中搜索所提供的字符串(在本例中为节点)。

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

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