3. Créer un module CommonJS

Ce que nous avons vu jusqu’à maintenant sur les modules était très théoriques, et tout cela peut vous paraître un peu lointain. C’est vrai, concrètement, c’est quoi un module ?

Et plus précisément, c’est quoi un module JavaScript avec le format CommonJS ?

Le mieux pour se faire une idée, c’est tout simplement de créer notre propre module. Nous allons créer un module pokedex.js, qui sera chargé de fournir des méthodes et des valeurs au reste de notre application app.js. Même si les extraits de code que nous allons voir sont donnés à titre d’exemple, essayez d’imaginer que ces deux fichiers se trouve dans le même dossier.

Allez, c’est parti.

Attention, j’espère que vous êtes prêt… voici votre premier module CommonJS :

// pokedex.js
exports.getPokemon = () => {
  return 'Bulbizzare'
};

Alors ? Rassuré.  😉

Comme vous pouvez le voir, il n’y a rien de bien méchant.

Apparemment, on exporte une simple fonction getPokemon, qui retourne « Bulbizzare« .

La seule « nouveauté », par rapport à ce que nous connaissons déjà, c’est l’utilisation du mot-clef exports. C’est ce mot-clef qui permet de dire à Node.js :  » Ok, maintenant on veut pouvoir utiliser cette méthode getPokemon ailleurs dans l’application « .

Du coup, dans le fichier principal de notre projet fictif app.js, on va chercher à afficher le nom du pokémon récupéré depuis le module pokedex :

const pokedex = require('./pokedex');
 
console.log(`Pokémon: ${pokedex.getPokemon() }`); // Affiche 'Bulbizzare' !

On a utilisé le mot-clef require à la ligne 1, pour récupérer notre module pokedex. Et ensuite, on utilise la méthode getPokemon du module importé à la ligne 3, afin d’afficher « Bulbizzare ». Concernant l’utilisation de require, vous remarquerez que :

  • On lui passe en paramètre le chemin relatif vers notre module. Comme pokedex.js et app.js sont dans le même module, il suffit de renseigné ./pokedex.
  • Aussi, on n’a pas besoin d’ajouter l’extension « .js » au fichier. Et oui, pas besoin d’écrire ./pokedex.js, Node.js le devine tout seul. Excellent !

Pour conclure, et avec la vision un peu plus pratique que nous avons maintenant, on pourrait dire qu’un module JavaScript est simplement un fichier, qui utilise le mot-clef exports pour exposer au moins un élément à l’extérieur.

Bon, et bien voilà, j’espère que les modules JavaScript vous déjà moins peur qu’au début. Et ce n’est pas fini !

Les mots-clefs exports et require sont inclus dans Node.js. C’est pour cela qu’on peut les utiliser en l’état, sans avoir rien à configurer ou à importer.