3.2. Ajouter un module plus complet

On a maintenant une meilleure connaissance des modules JavaScript. Cependant, le module que nous avons développé précédemment est assez limité, car nous avons exposé une simple méthode.

Heureusement, il est possible de développer des modules plus complets avec CommonJS, en exportant plusieurs méthodes et propriétés.

Reprenons notre module imaginaire pokedex.js, et enrichissons-le :

const pokemonList = ['Bulbizzare', 'Salamèche', 'Carapuce']
 
exports.getPokemonByIndex = (index) => {
  return pokemonList[index]
};
 
exports.getPokemonCount = () => {
  return pokemonList.length
};

Dans ce cas, j’exporte plusieurs méthodes, à savoir getPokemonByIndex et getPokemonCount. Comme vous pouvez le constater, il n’y pas de restrictions particulières, vous pouvez exposer autant d’éléments que vous le souhaitez depuis votre module.

De plus, sachez qu’il est possible d’exposer absolument tout ce que vous souhaitez : des fonctions, des objets, des contantes, etc.

Et dans app.js, le fonctionnement est le même que pour un module plus simple :

const pokedex = require('./pokedex')
 
// Affiche : "Il y a 3 pokémons dans le pokédex".
console.log(`Il y a ${pokedex.getPokemonCount() } dans le pokédex`)
 
// Affiche : "Le premier pokémon s'appelle Bulbizzare".
console.log(`Le premier pokémon s'apelle ${pokedex.getPokemonByIndex(1) }`)

Pas de grosses surprises ici, mais on est maintenant capable d’exposer autant de méthodes et de valeurs que l’on veut. On sera donc en mesure de créer des modules plus complets que jusqu’à maintenant. 👍