Debugguer une application Node.js avec node-inspector

Si recourir à quelques console.log() bien sentis peut être pratique afin de vérifier rapidement la valeur d'une variable, on est à peine un cran au dessus des alert() qui trufaient nos fichiers JavaScript dans les années 90 (et même 2000 ... parfois 2010). En revanche, pour traquer un bug un peu sophistiqué, il faut un outil également sophistiqué. Comme node-inspector.

On commence par installer le package correspondant :

npm install -g node-inspector  

On pointe ensuite vers le fichier que l'on souhaite débugguer. Dans notre exemple, app.js, qui contiendra la classique création d'un serveur web qui écoutera sur le port 3000 et répondra par un hello world :

var http = require('http');  
http.createServer(function (req, res) {  
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(3000, '127.0.0.1');
console.log('Server running at http://127.0.0.1:3000/');  

Mais au lieu de lancer notre application via un :

node app.js  

on utilisera

node-debug app.js  

Cela aura pour effet d'ouvrir un nouvel onglet dans chrome, qui fera une requête vers l'url:

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

Vous pouvez maintenant, dans un nouvel onglet, pointer vers l'url que le serveur écoute (dans notre cas, localhost sur le port 3000) :

http://localhost:3000/  

En retournant sur l'onglet correspondant à

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

vont remarquerez vos outils de développeurs web auxquels vous étiez habitués côté client, mais cette fois pour du débugage côté serveur. Avec bien évidemment la possibilité de poser des points d'arrêts, entre choses bien utiles.

A noter que depuis l'onglet source à l'extrême gauche, vous pouvez ouvrir directement le fichier qui vous intéresse, si vous connaissez son nom, via :

ctrl + o  

qui ouvrira une popup dans laquelle taper le nom du fichier.

Naviguer vers une fonction avec :

ctrl + shift + o  

En pratiquant et en googlant, vous trouverez d'autres astuces utiles.