アドレス指定エラー: Node.js の listen EADDRINUSE
「エラー: listen EADDRINUSE」の問題は、Node.js が次の処理を試みたときに発生します。すでに占有されているポートでリッスンします。 Node.js は、JavaScript アプリケーションを実行するためのランタイム環境です。
提供されたシナリオでは、サーバーはポート 80 で待機していると同時に、リクエストに対して XMLHttpRequest の使用を試みています。ブラウザは同時接続を処理できますが、Node.js サーバーはポートが利用できないため問題に直面しています。
前述のサーバー コード:
net.createServer(function (socket) { socket.name = socket.remoteAddress + ":" + socket.remotePort; console.log('connection request from: ' + socket.remoteAddress); socket.destroy(); }).listen(options.port);
サーバーは基本的に受信をリッスンしています。接続はできますが、すぐに破壊されます。これにより、実際のリクエストが処理されなくなります。
指定されたリクエスト コード:
var xhr = new XMLHttpRequest(); xhr.onreadystatechange = function() { sys.puts("State: " + this.readyState); if (this.readyState == 4) { sys.puts("Complete.\nBody length: " + this.responseText.length); sys.puts("Body:\n" + this.responseText); } }; xhr.open("GET", "http://mywebsite.com"); xhr.send();
リクエストは、Node.js の実行中にリモート Web サイトへの HTTP GET リクエストを実行しようとしています。サーバーはポート 80 で実行されています。
「エラー: listen EADDRINUSE」を解決するには、サーバーは次のことを行う必要があります。次のいずれか:
以上がXMLHttpRequest を使用すると Node.js が「エラー: listen EADDRINUSE」をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。