web-dev-qa-db-fra.com

débogage de node.js avec node-inspector

J'essaie de déboguer mon application nodejs à l'aide de l'inspecteur de nœud. Mais Google Chrome ne montre pas le code.

J'utilise ce qui suit,

Node.js: v0.10.26

Express: 4.0.0

Inspecteur de nœud: v0.7.3

Google Chrome version: 34.0.1847.131

C'est ce que je fais pour lancer le débogueur.

$ node-inspector
Node Inspector v0.7.3
Visit http://127.0.0.1:8080/debug?port=5858 to start debugging.

Dans une autre console,

$ node --debug app.js 
debugger listening on port 5858
$

Ensuite, Google a démarré Chrome) et est allé sur

http://127.0.0.1:8080/debug?port=5858

Il ouvre un inspecteur de nœuds mais sans code .. toutes les fenêtres sont vides.

Remarqué que je ne reçois pas le message "Serveur Express en écoute sur le port 3000"

Tout essayé conformément à nœud-inspecteur ne parvient pas à se connecter au nœud mais pas de chance

Impossible de comprendre ce que je manque. Ce serait génial de votre part d'avoir des suggestions pour pouvoir déboguer mes applications Node.js dans Google Chrome.

68
genwip

Essayez de courir node --debug-brk app.js au lieu de juste --debug. Votre application peut ne pas être en pause avant que l'inspecteur de nœud ne soit connecté au processus de nœud. En utilisant --debug-brk forcera le noeud à se briser sur la première ligne de votre application et attendra qu'un débogueur soit associé au processus. Le chargement de l'interface Web de l'inspecteur de nœuds est la raison pour laquelle l'inspecteur de nœuds se lie au processus de nœud; C'est pourquoi vous incluez le port de débogage du noeud dans la chaîne de requête (localhost: 8080/debug? port = 5858). Vous indiquez à l'inspecteur de nœud quel port il doit atteindre et se connecter.

Voici un gif animé que j'ai assemblé et qui montre l'installation complète et l'exécution de l'inspecteur de nœud.

Dans le gif j'utilise le --debug flag parce que je ne débogue pas le code qui fonctionne correctement au démarrage. Je débogue dans un gestionnaire de demandes qui ne se déclenche que lorsque la page est demandée. Ainsi, l'actualisation de la page provoque la rupture de l'inspecteur de nœud sur cette ligne.

J'ai également mis sur pied un didacticiel YouTube de 15 minutes il y a quelque temps.

http://youtu.be/03qGA-GJXjI

J'espère que ça aide!

121
Chev

node-inspector essaie par défaut de pré-charger tout le code avant de lancer la fenêtre de débogage. J'ai eu des instances, nœud-inspecteur se bloque pour toujours à cause de ce pré-chargement. Heureusement, les nouvelles versions ont une option pour arrêter le préchargement, ce qui accélère le chargement de l'inspecteur.

Essayez node-inspector --no-preload

22
Jerome Anthony

Le débogage distant standard est entièrement interrompu dans le noeud 6.5. Il est toutefois remplacé par une nouvelle fonctionnalité de noeud interne

$ node --inspect --debug-brk build/server/server.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://devtools/remote/serve_file/@62cd277117e6f8ec53e31b1be58290a6f7ab42ef/inspector.html?experiments=true&v8only=true&ws=localhost:9229/node
Debugger attached.

Voir ici - http://arveknudsen.com/?p=346%3Fpage_id%3D346&print=pdf - pour plus d'informations

6
elmpp

--debug-brk est maintenant obsolète

essayez node --inspect-brk <your starting file name> puis allez à chrome et tapez url chrome://inspect et cliquez sur Open dedicated DevTools for Node, le débogueur va démarrer, pas besoin d'inspecteur de nœud

1
vinay gosain

enter image description here

Sur la gauche de Node Inspecteur, onglet "Sources", il y a "une boîte avec un triangle" - la surbrillance dit "Afficher le navigateur". (Voir l'image ci-dessus). Ouvrir que pour trouver les fichiers que vous voulez déboguer et mettre un point d'arrêt sur le code qui n'a pas encore été exécuté.

Notez également que si vous souhaitez déboguer du code qui s'exécute sur le nœud de démarrage, vous devez utiliser la commande --debug-brk option lors du démarrage. Ensuite, dans Node Inspector, vous devrez lancer l’application (F8 pour tout exécuter). Vous aurez besoin de cette option si vous souhaitez déboguer tout le code d'initialisation, par exemple, le démarrage d'un navigateur Web.

0
clay

node-debug --no-preload app.js

Ce qui fonctionne pour moi. Accoriding à this :

Mon script est trop rapide pour attacher le débogueur.

Le processus de débogage doit être démarré avec --debug-brk, pour que le script soit suspendu sur la première ligne.

Remarque: node-debug ajoute cette option pour vous par défaut.

0
Nevin Madhukar K