Ich habe die expressjs-Anwendung mit den folgenden Befehlen erstellt:
express -e folderName
npm install ejs --save
npm install
Wenn ich die Anwendung mit: ausführe, node app.js
treten folgende Fehler auf:
events.js:72
throw er; // Unhandled 'error' event
^
Error: listen EADDRINUSE
at errnoException (net.js:884:11)
at Server._listen2 (net.js:1022:14)
at listen (net.js:1044:10)
at Server.listen (net.js:1110:5)
at Object.<anonymous> (folderName/app.js:33:24)
at Module._compile (module.js:456:26)
at Object.Module._extensions..js (module.js:474:10)
at Module.load (module.js:356:32)
at Function.Module._load (module.js:312:12)
at Function.Module.runMain (module.js:497:10)
Wie man es repariert?
Antworten:
Sie haben einen anderen Server ausgeführt, der denselben Port wie 8080 verwendet.
Vielleicht warst du
node app
in einer anderen Shell gelaufen. Bitte schließe sie und renne erneut.Sie können die PORT-Nr. ist verfügbar oder nicht verwendet
Alternativ können Sie lsof verwenden :
quelle
rails server
...: |Wir erhalten ähnliche Fehler, wenn wir manchmal unsere Express-App ausführen. In diesem Fall müssen wir dasselbe befolgen. Wir müssen überprüfen, ob es in einem Terminal läuft. Wenn Sie den Prozess suchen und beenden möchten, gehen Sie folgendermaßen vor:
ODER
Verwenden Sie einen einzelnen Befehl, um alle laufenden Knotenprozesse zu schließen.
quelle
ps aux | grep node | awk '{print $2}' | xargs kill -9
killall -r node
(unter Linux)Eine Instanz wird wahrscheinlich noch ausgeführt. Dies wird es beheben.
Update: Dieser Befehl funktioniert nur unter Linux / Ubuntu & Mac.
quelle
Wenn Sie unter Linux arbeiten, kann dieses Problem auch auftreten, wenn Nodejs nicht als Root ausgeführt wird.
Änderung von diesem:
Dazu:
Ist mir gerade passiert und keiner der anderen Vorschläge hier hat es behoben. Zum Glück erinnerte ich mich, dass das Skript neulich als Root lief. Hoffe das hilft jemandem!
Haftungsausschluss: Dies ist wahrscheinlich nicht die beste Lösung für eine Produktionsumgebung. Wenn Sie Ihren Dienst als Root starten, kann dies zu Sicherheitslücken in Ihrem Server / Ihrer Anwendung führen. In meinem Fall war dies eine Lösung für einen lokalen Dienst, aber ich würde andere dazu ermutigen, mehr Zeit damit zu verbringen, die Ursache zu isolieren.
quelle
Dies liegt daran, dass der Port, den Sie zum Ausführen des Skripts verwenden, bereits verwendet wird. Sie müssen alle anderen Knoten stoppen, die diesen Beitrag verwenden. Dazu können Sie alle Knoten überprüfen
ODER nur für Knotenprozess verwenden
ps -ef | grep node
Hiermit erhalten Sie die Liste aller Knotenprozesse mit IDum alle Knotenprozesse zu beenden
Oder für die spezifische ID
sudo kill -9 id
quelle
Ich habe den Fehler behoben, indem ich den Port geändert habe
und geändert zu:
quelle
Der Portknoten, den er zu verwenden versucht, kann bereits von einem anderen Programm verwendet werden. In meinem Fall war es ntop , das ich kürzlich installiert hatte. Ich musste http: // localhost: 3000 / in einem Browser öffnen , um es zu realisieren. Eine andere Möglichkeit, den Prozess zu finden, finden Sie hier .
quelle
Wenn Sie dieselbe Portnummer verwenden möchten, geben Sie
kill %
das Terminal ein, wodurch der aktuelle Hintergrundprozess abgebrochen und der Port für die weitere Verwendung freigegeben wird.quelle
Dies bedeutet, dass Ihre Datei jetzt ausgeführt wird. Geben Sie einfach den folgenden Code ein und versuchen Sie es erneut:
quelle
Schließen Sie alle anderen Knotenserver, die ausgeführt werden, auch wenn sie sich in anderen Terminalfenstern befinden oder an anderen Ports ausgeführt werden. Das sollte das Problem beheben.
quelle
Wenn Sie versucht haben, alle Knoteninstanzen und andere Dienste, die 3000 abhören (die Standardeinstellung, die vom Express-Skeleton-Setup verwendet wird), ohne Erfolg zu beenden, sollten Sie überprüfen, ob Ihre Umgebung "Port" nicht als etwas Unerwartetes definiert. Andernfalls wird wahrscheinlich der gleiche Fehler angezeigt. In der app.js-Datei des Express-Skeletts werden Sie Zeile 15 bemerken:
quelle
Um dies zu beheben, beenden oder schließen Sie den Server, den Sie ausführen. Wenn Sie die Eclipse-IDE verwenden, befolgen Sie diese Anweisungen.
Ausführen> Debuggen
Klicken Sie mit der rechten Maustaste auf den laufenden Prozess und klicken Sie auf Beenden .
quelle
events.js: 183 throw er; // Nicht behandeltes 'Fehler'-Ereignis
Ich habe auch die gleiche Art von Problem und viele Möglichkeiten ausprobiert, aber schließlich habe ich das verstanden, das funktioniert gut:
Weitere Informationen finden Sie unter diesem Link unter https://github.com/ionic-team/ionic-cli/issues/2922
quelle
Tatsächlich geben Strg + C-Tasten den vom Knotenprozess verwendeten Port nicht frei. Es gibt also diesen Fehler. Die Lösung des Problems bestand darin, das folgende Codefragment in server.js zu verwenden:
Das hat bei mir funktioniert.
Sie können auch nach anderen Lösungen suchen, die unter Graceful Shutdown in NodeJS erwähnt wurden
quelle
Grund für diesen Fehler
Einfache und schnelle Lösung
Unter Linux haben Sie beispielsweise 3000 als Port angegeben
lsof -i :3000
. Wenn auf Port 3000 bereits ein Prozess ausgeführt wird, wird dieser Druck auf der Konsole angezeigtKopieren Sie die PID (Prozess-ID) vom Ausgang
Ausführen
sudo kill -9 16615
(Sie müssen die PID nach -9 setzen)quelle
In meinem Fall musste ich auch rennen
vagrant reload
. Selbst wenn keine Knotenprozesse meine Express-App in meiner virtuellen Maschine ausführen, wurde dieser Fehler immer noch angezeigt, bis die Vagrant-Box neu geladen wurde.quelle
Beenden Sie den Dienst, der diesen Port verwendet.
quelle
In meinem Fall wurde das Problem dadurch verursacht, dass vergessen wurde,
next()
einen Expressjs-Use-Methodenaufruf aufzurufen.http://expressjs.com/guide/using-middleware.html
quelle
Das hat bei mir funktioniert.
http://www.codingdefined.com/2015/09/how-to-solve-nodejs-error-listen.html
Ändern Sie einfach die Portnummer in den Projekteigenschaften.
quelle
Sie können den Port auch von Gruntfile.js aus ändern und erneut ausführen.
quelle
Nachdem ich denselben Prozess mehrmals abgebrochen hatte und nicht feststellen konnte, was noch auf Port 8000 ausgeführt wurde, stellte ich fest, dass ich zweimal versuchte, auf Port 8000 ausgeführt zu werden:
Vor:
Nach dem:
quelle
Ich hatte das gleiche Problem und stellte fest, dass ein NodeJS-Prozess, den ich zuvor mit STRG + C abgebrochen hatte, noch ausgeführt wurde. Das Problem in Windows 10 ist, dass Strg + C Nodejs nicht ordnungsgemäß tötet. Ich habe den Task-Manager geöffnet und den Prozess manuell abgebrochen. Die auf GitHub bereitgestellten Lösungen haben bei mir nicht funktioniert.
quelle
Wenn Sie Windows verwenden, können Sie den Prozess über den Task-Manager für node.js beenden
quelle
Keine der Antworten hat bei mir funktioniert.
Wenn ich meinen Computer neu startete, konnte ich den Server zum Laufen bringen.
Mac
shutdown now -r
Linux
sudo shutdown now -r
quelle
-> Überprüfen Sie, was auf Port 8080 ausgeführt wird oder welchen Port Sie überprüfen möchten
Wenn etwas läuft, können Sie es schließen oder mit einem Kill-Befehl schließen
quelle
Überprüfen Sie einfach Ihr Teminal in Visual Studio Code. Da ich meine Knoten-App ausgeführt habe und meinen Laptop in den Ruhezustand versetze, schalte ich meinen Laptop am nächsten Morgen wieder ein, um Software zu entwickeln. DANN führe ich den erneuten Befehl nodemon app.js aus. Der erste wurde abends ausgeführt und der zweite führte meinen letzten Befehl aus, sodass zwei Befehlsansagen dieselben Ports abhören. Deshalb tritt dieses Problem auf. Einfach Schließen Sie ein Termianl oder alle Terminals und führen Sie dann Ihren Knoten app.js oder nodemon app.js aus
quelle
Der Port, den Sie abhören, wird bereits von einem anderen Prozess abgehört.
Als ich auf diesen Fehler stieß, habe ich den Prozess mit Windows PowerShell abgebrochen (weil ich Windows verwendet habe).
ps
und erhalten Sie eine Liste der ProzesseStop-process <Id>
Ich denke, dass es Hilfe für Windows-Benutzer istquelle
Ich bin heute auf dasselbe Problem gestoßen und der Port wurde nicht verwendet. Der folgende Ansatz hat geholfen:
quelle
WENN es in Mac ist, dreht sich alles um die IP von x86_64-apple-darwin13.4.0. Wenn Sie Fehlern folgen, hängt dies mit x86_64-apple-darwin13.4.0 zusammen. Hinzufügen
127.0.0.1 x86_64-apple-darwin13.4.0
in die Datei / etc / hosts . Dann ist das Problem weg
quelle
Ändern Sie einfach Ihren Port. Möglicherweise wird Ihr aktueller Port von iis oder einem anderen Server verwendet.
quelle