Je pense que le débogage est une partie du cycle de développement aussi cruciale qu’un autre. Il est donc toujours bon de démystifier le travail de débogage, en le rendant plus facile et moins fastidieux, afin que nous puissions terminer le travail à temps et réduire le stress..
Comme la majorité des langues, Node fournit d’excellents outils de débogage permettant de détecter et de corriger facilement les défauts de code. Je préconise toujours l'utilisation d'un débogueur parce que personnellement, je trouve que l'utilisation de débogueurs élimine le besoin de devinettes et fait de nous de meilleurs développeurs en général..
Ce guide est destiné aux développeurs et aux administrateurs qui travaillent déjà avec Node. Cela suppose une compréhension fondamentale de la langue à un niveau pratique.
Node.js comprend un utilitaire complet de débogage hors processus accessible via un simple protocole basé sur TCP et un client de débogage intégré.
Par exemple, pour utiliser le débogueur pour déboguer un fichier nommé script.js
, vous pouvez simplement appeler noeud en utilisant le déboguer
signaler comme suit:
$ node debug script.js < debugger listening on port 5858 connecting… ok debug>
Maintenant que vous avez démarré une session de débogage, n'importe où dans votre script que vous appelez débogueur
de sera un point d'arrêt pour le débogueur.
Ainsi, par exemple, ajoutons une instruction de débogage au fichier script.js:
toto = 2; setTimeout (() => débogueur; console.log ('bugger');; 1000); console.log ('de');
Maintenant, si nous exécutons ce script, le débogueur sera appelé sur notre point d'arrêt et nous pouvons contrôler le contrôle du script via cont
ou suivant
commandes (c
ou n
pour faire court).
Nous pouvons suspendre l'exécution du script à tout moment en utilisant p
.
$ node debug script.js < debugger listening on port 5858 connecting… ok break in /home/tom/web/envatodebug/myscript.js:1 1 foo = 5; 2 setTimeout(() => 3 débogueur; debug> cont < de break in /home/tom/web/envatodebug/myscript.js:3 1 foo = 5; 2 setTimeout(() => 3 débogueur; 4 console.log ('bugger'); 5, 1000); debug> prochaine pause dans /home/tom/web/envatodebug/myscript.js:4 2 setTimeout (() => 3 débogueur; 4 console.log ('bugger'); 5, 1000); 6 console.log ('de'); debug> next < bugger break in /home/tom/web/envatodebug/myscript.js:5 3 debugger; 4 console.log('bugger'); 5 , 1000); 6 console.log('de'); 7 debug> quitter
$ node debug script.js < debugger listening on port 5858 connecting… ok debug> repl Appuyez sur Ctrl + C pour quitter le débogage repl> foo 2> 2 + 2 4
La boucle lecture-évaluation-impression du débogueur vous permet de saisir le code de manière interactive pendant l'exécution et d'accéder ainsi à l'état de l'application et à toutes ses variables et méthodes au moment de l'exécution. Ceci est un outil très puissant que vous pouvez utiliser pour assainir rapidement votre application..
En règle générale, le REPL est disponible en tant qu'agent autonome et en tant que partie du débogueur, et il vous permet d'exécuter JavaScript de manière interactive. Par exemple, tapez simplement nœud
à l'invite sans options, et vous recevrez une interface REPL dans laquelle vous pouvez écrire du code et voir la sortie.
J'ai mentionné plus tôt le cont
et suivant
(c
et n
), qui nous permettent de continuer l’exécution de code une fois le point d’arrêt atteint. En plus de cela, lorsque nous parcourons le code, nous pouvons également passer à une méthode ou à sa portée parente..
Utilisez les commandes étape
pour intervenir et en dehors
sortir, ou s
et o
pour faire court.
Utilisation la trace
ou bt
pour obtenir une sortie de la trace pour le cadre d'exécution actuel.
Utilisation redémarrer
ou r
pour relancer votre script depuis le début de l'exécution.
Les utilisateurs avancés peuvent accéder au débogueur également en démarrant Node.js avec le --déboguer
indicateur de ligne de commande, ou bien en signalant un processus Node.js existant avec SIGUSR1
.
Une fois qu'un processus a été défini en mode débogage de cette manière, il peut être connecté à l'aide du débogueur Node.js à l'aide de la commande pid
du processus en cours ou via une référence URI (par exemple, localhost: port
) pour connecter le débogueur d’écoute:
nœud debug -p
se connecte au processus via le pid
.débogage de noeud
se connecte au processus via l'URI tel que localhost: 5858
.En plus de l'outil de débogage CLI, Node Inspector fournit également un inspecteur d'interface graphique dans le navigateur Web (ne prenant actuellement en charge que Chrome et Opera)..
Pour utiliser le débogueur, installez simplement comme suit:
npm install -g node-inspector
Maintenant que l'inspecteur de nœud est installé, nous pouvons déboguer notre script.js avec:
node-debug script.js
Votre shell va maintenant afficher ce qui suit et ouvrira probablement le navigateur Web à l’URL si Chrome ou Opera est défini par défaut sur votre système d’exploitation..
L'inspecteur de nœud est maintenant disponible à partir de http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858 Débogage du débogueur 'script.js' à l'écoute sur le port 5858
Dans votre navigateur Web, vous pourrez désormais déboguer votre application dans un environnement similaire à celui du package des outils de développement. La définition des points d'arrêt et du code d'affichage est désormais intégrée à la vue de votre navigateur. Prendre plaisir!
Déboguer n'a pas besoin d'être un cauchemar, ni stressant.
Définir des points d'arrêt et parcourir le code est si simple dans Node. C'est une expérience très similaire à Ruby, et si vous essayez de comprendre une application qui vous a été donnée, ouvrir l'application en mode débogage et suspendre l'exécution est un moyen fantastique d'apprendre dans un laps de temps rapide..