节点js听简单的HTTP服务器的EADDRINUSE错误

我有简单的节点js http服务器。

var http = require("http"); http.createServer(function(request, response) { response.writeHead(200, {"Content-Type": "text/plain"}); response.write("Hello World"); response.end(); }).listen(8888); 

如果我跑

 node basicserver.js 

我明白了

 node.js:201 throw e; // process.nextTick error, or 'error' event on first tick ^ Error: listen EADDRINUSE at errnoException (net.js:642:11) at Array.0 (net.js:743:26) at EventEmitter._tickCallback (node.js:192:40) 

我已经看到这个post,但是这个post似乎是特定于TCP服务器而不是http服务器。 任何人都可以请帮忙。

您正在监听的端口已被另一个进程监听。 在这种情况下,我有一种感觉,那就是你的自我。 你可以做一个ps aux | grep node 然后使用kill <pid> kill你的节点进程。 除此之外,你也可以尝试另一个端口。

–Update–

如果你想find正在监听的进程,可以使用netstat -lpn-l是找出监听端口, -p是包含进程名和pid, -n是不parsing主机名,否则会很慢),以查找正在不同端口上侦听的进程。 如果有太多,你可以做netstat -lnp | grep :8888 netstat -lnp | grep :8888

也可以使用fuser 8888/tcp ,它会显示你的进程pid,同时join-k会杀死进程,有史以来最快的方法。

我意识到这两个命令只能在Linux中工作。

我最喜欢杀死我机器上的所有实验

  killall node 

尝试运行服务器时可能会出现同样的问题,但是您没有root权限。