1. ホーム
  2. node.js

[解決済み] node js listen EADDRINUSE エラー(シンプルな httpserver の場合

2022-02-11 11:21:05

質問

簡単なnode 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)

私が見たのは これ の投稿がありますが、その投稿はTCPサーバに特化したもので、httpサーバには対応していないようです。どなたか助けてください。

解決方法は?

あなたがリッスンしているポートは、すでに他のプロセスによってリッスンされています。この場合、それはあなた自身であるような気がします。この場合 ps aux | grep node を使用し、その後に kill <pid> ノードのプロセスを終了させます。そのほかにも、別のポートを試すこともできます。

--更新--。

どのプロセスがリッスンしているのか知りたい場合は netstat -lpn ( -l は、リスニングポートを調べるためのものです。 -p には、プロセス名とpidを入れます。 -n はホスト名を解決しない、さもなければ遅くなる)、異なるポートでリッスンしているプロセスを見つけるために。もし数が多ければ netstat -lnp | grep :8888 .

も使用できる。 fuser 8888/tcp を追加すると、プロセスの pid が表示されます。 -k はプロセスを強制終了させるので、今までで一番速い方法です。

この2つのコマンドは リナックス .