Menu
CoddyTech

Modules CommonJS

Fait partie de la section Les bases de Node.js du Journey Node.js de Coddy. Leçon 9 sur 24.

Une grande partie du code Node que tu liras dans les paquets npm et les anciens tutoriels utilise un autre système de modules.

CommonJS exporte avec module.exports et importe avec require. Node l’exécute toujours dans les fichiers dont le nom se termine par .cjs, et un import d’un tel fichier te donne son objet module.exports par défaut :

// greet.cjs
function hello(name) {
    return 'Hello, ' + name;
}
module.exports = { hello };

// app.js
import greet from './greet.cjs';
console.log(greet.hello('Ada'));

exports est au départ le même objet que module.exports. exports.hello = hello y ajoute une propriété ; exports = { hello } remplace la variable, et l’importateur obtient un objet vide.

challenge icon

Défi

Facile
  • Terminez countWords(notes) dans legacy/stats.cjs : combien de mots les notes contiennent au total.
  • Importez-le dans notes.js avec import stats from './legacy/stats.cjs'.
  • Une commande stats affiche 3 notes, 7 words.

Exécutez node notes.js stats. Ensuite, add une note et exécutez de nouveau stats : toujours 3, car rien n’est encore enregistré.

Essayez vous-même

// Un ancien module, écrit à la manière de CommonJS.
function countWords(notes) {
    // Renvoie le nombre total de mots contenus dans toutes les notes.
    return 0;
}

module.exports = { countWords };

Toutes les leçons de Les bases de Node.js