web-dev-qa-db-fra.com

Comment déboguer un serveur Node.js fonctionnant avec Chrome/WebKit en tant que débogueur distant?

Si vous avez votre nœud en cours d'exécution

node --debug server.js

Cela me donne un numéro de port xxxx. Devrais-je utiliser ce numéro de port lors du démarrage de Chrome?

Est-ce que vous pouvez y déboguer à distance à partir de Google\ Chrome --remote-debugging-port=xxxx?

Ou est le 9222 un port magique, comme il est mentionné partout.

Suis-je sur la bonne voie en essayant de démarrer Chrome avec --remote-debugger dans le fichier Node.js server.js

19
Chris G.

Les inspecteurs de nœuds/--debug sont maintenant remplacés par l'inspecteur Voir la mise à jour ci-dessous

#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

Vous pouvez maintenant accéder à http: // votre_serveur: 8080 pour une session de débogage complète de myproject.js.

Si votre serveur distant n'est pas accessible sur le port distant pour des raisons de pare-feu ou pour d'autres raisons, vous pouvez créer un ssh-tunnel depuis le port 8080 de votre ordinateur local jusqu'à "localhost: 8080" sur le serveur distant:

ssh -L 8080:localhost:8080 username@remoteserver -N

et continuez à l'utiliser pendant que vous utilisez http: // localhost: 8080 sur votre ordinateur local pour déboguer votre session nodejs distante


Mise à jour août 2017

Noeud de démarrage en mode inspection:

node --inspect=0.0.0.0:9229 myproject.js

ou si vous voulez que le débogueur se casse à la première ligne de myproject.js:

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

Ouvrez ensuite l'URL suivante dans votre navigateur Chrome:

chrome://inspect

Cliquez sur le bouton 'Configurer ...' et ajoutez la cible suivante:

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

Après avoir cliqué sur le bouton "Terminé", vous devriez voir myproject.js sous vos cibles distantes. Cliquez sur le lien inspecter pour lancer le débogage. Malheureusement, le lien d’inspection ne fonctionne pas sur Chrome 58 pour Ubuntu. Cela fonctionne bien sur Chrome 60 pour Windows.

16
anneb

Utilisez node-inspector pour déboguer à distance votre application de noeud à partir de Chrome que vous avez commencée avec l'option --debug telle que vous l'avez montrée.

9
JohnnyHK

Les versions récentes de Node (> v6.3.0) et de Chrome vous permettent désormais d'utiliser les outils de développement Chrome pour déboguer un processus Node.JS sans rien installer d'autre. Il suffit de passer --inspect à 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

Ouvrez simplement cette URL dans Chrome, et vous êtes prêt à partir.

Si vous devez suspendre votre script immédiatement après le démarrage du nœud, vous pouvez également transmettre --debug-brk dans la même commande.

5
schmod
  • utilisant $ vagrant ssh - -L 5858: 127.0.0.1: 5858

      to ssh connect to VM. also this comment would start a proxy server on port 5858;
    
  • vous pouvez tester l'utilisation de telnet 127.0.0.1 5858 pour voir si le serveur proxy local a démarré ou non.

  • Dans la VM, vous pouvez démarrer le noeud avec la commande

  • $ node --debug-brk app.js

  • configurer la configuration de débogage dans Web storm.
  • lorsque vous démarrez le débogage dans Web storm, le serveur node.js dans VM démarrera dans quelques secondes.

PS: il n’est pas nécessaire de toucher le fichier vagrant. Référence: Connexion de WebStorm à une session de débogage node.js distante .

0
hushenglang