3.1. Gérer une valeur par défaut

Alors, nous avons vu le fonctionnement de base des modules CommonJS, au moins suffisamment pour s’en sortir par la suite. Mais, comme vous le savez, j’aime bien chipoter un peu. Et si nous allégions légèrement notre code, avec une petite astuce simple ?

En fait, le format CommonJS propose un raccourci de syntaxe pour les modules exposant une unique valeur, quelle qu’elle soit. Reprenons le premier exemple de module :

// pokedex.js
exports.getPokemon = () => {
  return 'Bulbizzare'
};
 
// app.js
const pokedex = require('./pokedex');
console.log(`Pokémon: ${pokedex.getPokemon() }`);

En soi, il n’y a rien de gênant, mais pourquoi se balader avec le module pokedex en entier, alors que c’est seulement la méthode getPokemon qui nous intéresse ?

C’est là que CommonJS vient à notre rescousse, en nous proposant une syntaxe originale, mais qui fait le travail néanmoins. Regardez plutôt par vous-même dans le module pokedex.js :

// On déclare simplement la constante getPokemon.
const getPokemon = () => {
  return 'Bulbizzare'
};
 
// On expose getPokemon comme valeur par défaut :
module.exports = getPokemon

Et ensuite dans le code de notre application app.js :

// On peut importer directement la valeur par défaut :
const getPokemon = require('./pokedex');
 
console.log(`Pokémon: ${getPokemon() }`);

C’est là que c’est incroyable, il n’y a même plus mention du module pokedex en tant que tel. On peut récupérer directement la valeur par défaut getPokemon, et l’utiliser directement dans notre code.

Alors ce n’est pas forcément spectaculaire comme ça, mais imaginez si dans votre code, vous aviez utilisé le module pokedex à beaucoup plus d’endroits. Eh bien vous auriez pu vous débarrassez de cette redondance, et votre code aurait été plus concis et lisible. 😇