2016-07-12 52 views
7

Sto cercando di eseguire il debug di un'applicazione Node.JS su VS codice, ma, quando si apre il terminale, ottengo questo messaggio:Node.JS debug errore VS Codice EADDRINUSE

Errore: ascolta EADDRINUSE ::: 5858

La mia applicazione utilizza un framework chiamato StrawJS (https://github.com/simonswain/straw) e avvia alcuni processi diversi allo stesso tempo. Penso che questa sia la causa dell'errore perché ci sono molti processi diversi che cercano di usare lo stesso debugger.

Ho trovato una domanda simile (VSCode will not stop on breakpoints when first node prcess forks a second) ma configurare la porta sul file attach.js non ha funzionato, il problema persiste.

Questo è il mio file effettivo launch.json:

{ 
"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 
    } 
]} 

Grazie!

+1

Ho questo errore perché il nodo trova questa porta già utilizzata da un altro processo ... hai provato una porta diversa? –

+0

Sì, ho provato alcune porte diverse –

risposta

1

Ho avuto lo stesso problema. Se hai avviato il nodo --debug da CMD, devi solo allegare a Process nel tuo VS Code (se provi a lanciarlo di nuovo da VS Code sulla stessa porta causerà un errore - questo è stato il mio errore).

definire l'oggetto di configurazione allegare in launch.json con qualcosa di simile:

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

scegliere Connetti a processo nel menu a discesa in alto a sinistra e premere il tasto verde play - Avvia debug.

+0

La tua risposta eccellente sopra la quale ho appena assegnato punti reputazione funziona ancora se unisco l'oggetto Collega a [Nodo] Processo con un oggetto Processo di avvio (gdb) in una configurazione di avvio composta VSCode e scegli l'opzione di lancio composta nel menu a discesa nell'angolo in alto a sinistra e premi il pulsante di riproduzione verde - Avvia debugging.so Posso entrare senza problemi in un processo node.js che richiama un addon C++ personalizzato seguito da un passaggio nei breakpoint del componente C++ e poi tornare al processo node.js originale per il debug del punto di interruzione? Grazie. – Frank

+0

Mi dispiace davvero, ma non ho esperienza con gli addon. Tuttavia, questa è solo una procedura su come collegare VSCode al nodo; non dovrebbe avere alcun impatto sulla combinazione di debugger. – stijena

+0

Il problema di EADDRINUSE: PORT 5858 si verifica solo per me sul mio portatile DELL WINDOWS 10 che esegue la scatola virtuale RedHat Linux con nodo v6.11.1 installato quando il laptop DELL è ancorato e connesso alla rete ethernet dell'azienda. Il problema EADDRINUSE non si verifica quando non sono collegato a una rete aziendale. Un collega mi ha detto che pensava che la porta 5858 potesse essere già utilizzata da un proxy, forse http-proxy, ma quando ho eseguito netstat su entrambi i terminali Windows 10 e RedHat Linux quando EADDRINUSE è successo, non c'era nessuna voce per la porta 5858. Come faccio a risolvere questo problema? Grazie. – Frank