Heim > Web-Frontend > js-Tutorial > 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
Freigeben: 2024-11-19 13:03:03
Original
319 Leute haben es durchsucht

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);
Nach dem Login kopieren

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();
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage