2016-07-12 6 views
7

ich auf VS-Code eine Node.JS Anwendung zu debuggen versuchen aber, wenn das Terminal öffnet, erhalte ich diese Meldung:Debug Node.JS auf VS-Code EADDRINUSE Fehler

Fehler: hören EADDRINUSE ::: 5858

Meine Anwendung verwendet ein Framework namens StrawJS (https://github.com/simonswain/straw) und es startet einige verschiedene Prozesse zur gleichen Zeit. Ich denke, dass dies die Ursache des Fehlers ist, da es viele verschiedene Prozesse gibt, die versuchen, den gleichen Debugger zu verwenden.

Ich fand eine ähnliche Frage (VSCode will not stop on breakpoints when first node prcess forks a second), aber konfigurieren Sie den Port auf der attach.js Datei hat nicht funktioniert, das Problem besteht weiter.

Dies ist meine eigentliche launch.json Datei:

{ 
"version": "0.2.0", 
"configurations": [ 
    { 
     "name": "Launch", 
     "type": "node", 
     "request": "launch", 
     "port": 5858, 
     "program": "${workspaceRoot}/run.js", 
     "stopOnEntry": false, 
     "args": [], 
     "cwd": "${workspaceRoot}", 
     "preLaunchTask": null, 
     "runtimeExecutable": null, 
     "runtimeArgs": [ 
      "--nolazy" 
     ], 
     "env": { 
      "NODE_ENV": "development" 
     }, 
     "externalConsole": true, 
     "sourceMaps": false, 
     "outDir": null 
    } 
]} 

Thank you!

+1

Ich habe diesen Fehler, weil Knoten findet diesen Port bereits von einem anderen Prozess verwendet ... haben Sie einen anderen Port versucht? –

+0

Ja, ich habe verschiedene Ports ausprobiert –

Antwort

1

Ich hatte das gleiche Problem. Wenn Sie den Knoten --debug von CMD gestartet haben, müssen Sie nur an den Prozess in Ihrem VS-Code anhängen (wenn Sie versuchen, ihn erneut von VS-Code auf demselben Port zu starten, wird ein Fehler verursacht - das war mein Fehler).

DEFINE-Konfigurationsobjekt in launch.json mit so etwas wie diesem befestigen:

{ 
    "type": "node", 
    "request": "attach", 
    "name": "Attach to Process", 
    "port": 5858 
} 

wählen Sie Anhänge in der Dropdown-Liste in der oberen linken Ecke und drücken grüne Play-Taste, um Prozess - Start Debugging.

+0

Wird Ihre obige ausgezeichnete Antwort, die ich gerade Reputationspunkte vergeben habe, immer noch funktionieren, wenn ich das Attach to [Node] Process Objekt mit einem (gdb) Launch Process Objekt in einer VSCode Compound Launch-Konfiguration kombiniere Wählen Sie die Compound-Startoption in der Dropdown-Liste in der oberen linken Ecke und drücken Sie die grüne Wiedergabetaste - Debugging starten.so kann ich nahtlos in einen node.js-Prozess einsteigen, der zuerst ein benutzerdefiniertes C++ - Addon aufruft, gefolgt von den Breakpoints des C++ Addons Zurück zum ursprünglichen node.js-Prozess für Breakpoint-Debugging? Vielen Dank. – Frank

+0

Es tut mir wirklich leid, aber ich habe keine Erfahrung mit Addons. Dies ist jedoch nur eine Vorgehensweise zum Anfügen von VSCode an Knoten; Es sollte keinen Einfluss auf die Kombination von Debuggern haben. – stijena

+0

Das Problem von EADDRINUSE: PORT 5858 tritt nur für mich auf meinem meinem DELL WINDOWS 10 Laptop mit RedHat Linux virtuellen Box mit Knoten v6.11.1 installiert, wenn der Dell-Laptop angedockt und mit dem Ethernet-Netzwerk des Unternehmens verbunden ist. Das EADDRINUSE-Problem tritt nicht auf, wenn ich nicht an ein Unternehmensnetzwerk angeschlossen bin. Ein Kollege sagte mir, er dachte, Port 5858 könnte bereits von einem Proxy benutzt werden, vielleicht http-proxy. Aber als ich netstat sowohl auf Windows 10 als auch auf der RedHat Linux-Box lief, als EADDRINUSE passierte, gab es keinen Eintrag für Port 5858.How behebe ich dieses Problem? Vielen Dank. – Frank