首頁 > web前端 > js教程 > 為什麼我在執行 Node.JS 伺服器時收到「錯誤:listen EADDRINUSE」?

為什麼我在執行 Node.JS 伺服器時收到「錯誤:listen EADDRINUSE」?

Susan Sarandon
發布: 2024-11-19 13:03:03
原創
335 人瀏覽過

Why Am I Getting the

使用Node.JS 時修正錯誤:EADDRINUSE

問題概述:

嘗試在連接埠上執行伺服器時80使用XMLHttpRequest 執行請求時,可能會發生錯誤「Error:listen EADDRINUSE” Node.JS。此錯誤表示伺服器無法綁定到指定端口,因為另一個進程已在使用該端口。

問題原因:

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();
登入後複製

解決方案:

要解決此問題,需要確保沒有其他進程綁定到端口80。這可以透過使用以下命令殺死有問題的進程來實現命令:

killall -9 node
登入後複製

注意:此命令將終止所有正在運行的Node.JS 進程,因此請謹慎使用。

驗證終止:

要驗證進程是否已終止,請執行以下命令命令:

ps ax
登入後複製

如果沒有列出任何Node. JS 進程,則問題應該解決。

以上是為什麼我在執行 Node.JS 伺服器時收到「錯誤:listen EADDRINUSE」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板