Heim  >  Artikel  >  Web-Frontend  >  Warum erhalte ich beim Ausführen eines Node.JS-Servers die Fehlermeldung „Fehler: listen EADDRINUSE'?

Warum erhalte ich beim Ausführen eines Node.JS-Servers die Fehlermeldung „Fehler: listen EADDRINUSE'?

Susan Sarandon
Susan SarandonOriginal
2024-11-19 13:03:03269Durchsuche

Why Am I Getting the

Fehlerbehebung: EADDRINUSE bei Verwendung von Node.JS

Problemübersicht:

Beim Versuch, einen Server am Port auszuführen 80 Beim Durchführen einer Anfrage mit XMLHttpRequest kann in Node.JS der Fehler „Fehler: listen EADDRINUSE“ auftreten. Dieser Fehler weist darauf hin, dass der Server keine Verbindung zum angegebenen Port herstellen kann, da er bereits von einem anderen Prozess verwendet wird.

Warum es ein Problem ist:

Node.JS erfordert Exklusivität Verwendung des Ports, an den es bindet, wodurch verhindert wird, dass Anfragen gestellt werden, während der Server läuft. Browser können eine Verbindung zum Server herstellen und Anfragen stellen, da sie kurzlebige Ports verwenden.

Serverimplementierung:

net.createServer(function (socket) {
    socket.name = socket.remoteAddress + ":" + socket.remotePort;
    console.log('connection request from: ' + socket.remoteAddress);
    socket.destroy();
  }).listen(options.port);

Anfragecode:

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();

Lösung:

Um dieses Problem zu beheben, muss sichergestellt werden, dass kein anderer Prozess an Port 80 bindet. Dies kann erreicht werden, indem der fehlerhafte Prozess beendet wird Verwenden Sie den folgenden Befehl:

killall -9 node

Achtung: Dieser Befehl beendet alle laufenden Node.JS-Prozesse. Verwenden Sie ihn daher mit Vorsicht.

Beendigung überprüfen :

Um zu überprüfen, ob der Prozess beendet wurde, führen Sie den folgenden Befehl aus:

ps ax

Wenn keine Node.JS-Prozesse aufgeführt sind, sollte das Problem behoben sein.

Das obige ist der detaillierte Inhalt vonWarum erhalte ich beim Ausführen eines Node.JS-Servers die Fehlermeldung „Fehler: listen EADDRINUSE'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn