node js侦听简单httpserver的EADDRINUSE错误

ris*_*p89 10 httpserver node.js

我有简单的节点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);
Run Code Online (Sandbox Code Playgroud)

如果我跑

node basicserver.js 
Run Code Online (Sandbox Code Playgroud)

我明白了

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)
Run Code Online (Sandbox Code Playgroud)

我看过这篇文章,但该帖子似乎是特定于TCP服务器而不是http服务器.有谁可以帮忙.

Far*_*hat 25

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

--Update--

如果你想找到哪个进程正在侦听,你可以使用netstat -lpn(-l是找出侦听端口,-p是包含进程名称和pid,-n是为了不解析主机名,否则它会很慢),到找到正在侦听不同端口的进程.如果有太多,你可以做netstat -lnp | grep :8888.

也可以使用,fuser 8888/tcp这将显示进程pid,并且添加-k将杀死进程,最快的方式.

我意识到这两个命令只适用于linux.


Pab*_*rra 6

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

 killall node
Run Code Online (Sandbox Code Playgroud)