ホームページ > ウェブフロントエンド > jsチュートリアル > XMLHttpRequest を使用すると Node.js が「エラー: listen EADDRINUSE」をスローするのはなぜですか?

XMLHttpRequest を使用すると Node.js が「エラー: listen EADDRINUSE」をスローするのはなぜですか?

Barbara Streisand
リリース: 2024-11-27 19:51:10
オリジナル
814 人が閲覧しました

Why Does Node.js Throw

アドレス指定エラー: 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」を解決するには、サーバーは次のことを行う必要があります。次のいずれか:

  • 別のポートを使用する: サーバーは 8080 などの別のポートでリッスンでき、XMLHttpRequest リクエストがポート 80 で続行できるようになります。
  • サーバーを停止します: サーバーをポート 80 で実行する必要がある場合は、その前にサーバーを停止する必要があります。 XMLHttpRequest リクエストを実行します。一般的な方法は、killall -9 ノードを使用して Node.js プロセスを終了することです。
  • プロキシ サーバーを使用する: プロキシ サーバーを使用して、受信接続を処理し、リクエストをノードに転送できます。 .jsサーバー。これにより、複数のアプリケーションが同じポートを使用できるようになります。

以上がXMLHttpRequest を使用すると Node.js が「エラー: listen EADDRINUSE」をスローするのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート