Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Du 22 au 24 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. Node.js
  3. Débogage
Extrait - Node.js Exploitez la puissance de JavaScript côté serveur
Extraits du livre
Node.js Exploitez la puissance de JavaScript côté serveur
1 avis
Revenir à la page d'achat du livre

Débogage

Introduction

Malgré les tests, des bogues passent toujours au travers des mailles du filet. Les comprendre et les résoudre peut devenir très vite chronophage ; cependant, il existe des outils adaptés pour vous aider dans cette quête, ainsi que des méthodologies pour « chasser du bogue » à grande vitesse. C’est exactement ce que vous allez découvrir dans ce chapitre : tout d’abord via l’ajout de traces, mais aussi via le très puissant Node inspector, cet outil permettant de suivre de très près l’exécution de votre programme, mais aussi d’inspecter et de d’intervenir n’importe où pour résoudre vos problèmes.

Ajout de traces

La première approche, dite « naïve », consiste à mettre des traces dans son code, avec par exemple un affichage à l’écran de variables ou d’opérations pour en comprendre le contenu : console.log(’dbms connection’).

Cette façon de faire, bien que pratique pour des bogues simples, devient rapidement inefficace dans des cas un peu plus complexes qui nécessitent par exemple d’inspecter les variables ou la pile d’appels.

Néanmoins, mettre de nombreuses traces dans le code peut aider dans bien des cas pour pouvoir suivre l’exécution de l’application. Par contre, il convient de ne pas polluer inutilement l’affichage pour l’utilisateur novice et/ou d’autres développeurs utilisant le code.

C’est pourquoi, à la place de simples console.log(), nous opterons pour l’utilisation de la bibliothèque debug (https://www.npmjs.org/package/debug) qui permet de faire des traces débrayables.

Cette bibliothèque s’installe comme les autres via npm :


$ npm install --save debug
 

L’utilisation est très simple : le paquet expose une seule méthode qui renvoie une fonction de trace associée à un nom (une chaîne de caractères).

Dans le code suivant, la fonction de trace log() associée au nom myApp est créée...

Node-Inspector

L’outil Node-Inspector est principalement développé par la société StrongLoop, spécialisée précisément dans Node et fournissant une API mobile pour ce dernier. Cette firme est aujourd’hui une des principales contributrices au projet Node. Voici pour le contexte. Pour l’outil en lui-même, c’est un débogueur dédié à Node. Il communique directement avec le moteur V8 via les outils du navigateur Chrome (ou Chromium pour sa version open source). Il faut donc installer ce dernier pour en profiter.

1. Installation et lancement

Comme toujours dans le monde Node, l’installation passe par npm :


$ npm install -g node-inspector
 

Comme il s’agit d’une installation globale, il faut avoir les droits suffisants pour opérer (être administrateur de la machine ou utiliser sudo).

Pour démarrer le débogueur, il est nécessaire de lui passer en paramètre le programme JavaScript, comme ceci :


$ node-debug app.js
 

Cela a pour effet de lancer le débogueur dans le navigateur par défaut. Bien entendu, si ce n’est pas Chrome, il faut utiliser la commande suivante :


$ node-debug -c app.js
 

En effet, le paramètre -c permet de ne pas lancer le navigateur. Cependant, on doit ensuite utiliser Chrome avec l’URL affichée dans la console :


$ node-debug -c app.js  
debugger listening...