2012-09-15 12 views
13

Se avete il nodo in esecuzioneCome si esegue il debug di un server Node.js in esecuzione con Chrome/WebKit come debugger remoto?

node --debug server.js 

Questo mi dà un numero di porta xxxx, dovrei usare questo numero di porta quando si avvia Chrome?

Esegui il debug remoto da Google\ Chrome --remote-debugging-port=xxxx?

Oppure la 9222 è una porta magica, come viene citata dappertutto.

Sono sulla strada giusta, cercando di avviare Chrome con --remote-debugger nella Node.js server.js

risposta

10

Il nodo-ispettore/--debug sono ora sostituiti da ispettore See aggiornamento sotto

#now deprecated/see below for update 

#install node-inspector 
npm install -g node-inspector 

#start node-inspector, listen on port 8080 (default) 
node-inspector --web-port=8080 

#in another terminal session/window: 
#while node-inspector is running, start your project in debug mode 
node --debug myproject.js 

Ora è possibile individuare http://your_server:8080 per una sessione di debug pieno di myproject.js

Se il server remoto non è accessibile sulla porta remota a causa di firewall o altri motivi, è possibile creare un tunnel ssh dalla porta 8080 del computer locale a "localhost: 8080" sul server remoto:

ssh -L 8080:localhost:8080 [email protected] -N 

e mantenere questo correre durante l'utilizzo http://localhost:8080 sul computer locale per eseguire il debug la sessione nodejs remota


Aggiornamento agosto 2017

nodo di partenza in modalità ispezionare:

node --inspect=0.0.0.0:9229 myproject.js 

o se si desidera che il debugger si interrompa alla prima riga di myproject .JS:

node --inspect-brk=0.0.0.0:9229 myproject.js 

quindi aprire il seguente URL nel browser Chrome:

chrome://inspect 

Fare clic sul 'Configura ...' pulsante e aggiungere il seguente obiettivo:

ip-or-name-of-server-running-node:9229 

Dopo aver fai clic sul pulsante 'Fatto', dovresti vedere myproject.js sotto le tue destinazioni remote. Fare clic sul collegamento ispeziona per avviare il debug. Sfortunatamente, il link inspect non funziona su Chrome 58 per Ubuntu. Funziona bene su Chrome 60 per Windows.

+0

Sai se devo avviare ispettore del nodo esplicitamente come nel tuo esempio quando esegui un server meteorologico? – Gobliins

+0

Grazie! Funziona bene per me con 'chrome: // inspect /', tuttavia fallisce con VS Code (in allegato ma i breakpoint non funzionano) e IntelliJ IDEA (stampa "Connecting to ip ...") e nient'altro accade. –

+0

per ispezionare per sempre e ricaricare quando lo si salva utilizzare questo nodo "per sempre -w -c" ​​--inspect = 127.0.0.1: 3333 'file.js' – DarckBlezzer

9

Usa node-inspector per eseguire il debug remoto l'applicazione nodo da Chrome che hai iniziato con l'opzione --debug come hai mostrato.

0
  • utilizzando $ ssh vagabondo - -L 5858: 127.0.0.1: 5858

    to ssh connect to VM. also this comment would start a proxy server on port 5858; 
    
  • si potrebbe verificare usando telnet 127.0.0.1 5858 per vedere se il server proxy locale avviato o meno.

  • In VM, è possibile iniziare a nodo con comando

  • $ nodo --debug-BRK app.js

  • impostare la configurazione di debug nel web tempesta.
  • quando si avvia il debug in web storm, il server node.js in VM inizierà in pochi secondi.

PS: non è necessario toccare il file vagabondo. Riferimento: Connecting WebStorm to a remote node.js debugging session.

+0

Grazie, questo funziona. – arcseldon

4

Le versioni recenti di Nodo (> v6.3.0) e Chrome ora consentono di utilizzare gli Strumenti per sviluppatori di Chrome su debug a Node.JS process senza dover installare altro. Basta passare --inspect a node:

$ node --inspect script.js 

Debugger listening on port 9229. 
Warning: This is an experimental feature and could change at any time. 
To start debugging, open the following URL in Chrome: 
    chrome-devtools://SOME-URL-HERE 

Basta aprire l'URL in Chrome, e siete a posto.

Se è necessario mettere in pausa lo script immediatamente dopo l'avvio del nodo, è possibile anche passare --debug-brk nello stesso comando.

Problemi correlati