Modules CommonJS
Fait partie de la section Les bases de Node.js du Journey Node.js de Coddy. Leçon 10 sur 33.
Une grande partie du code Node que vous lirez dans les paquets npm et les anciens tutoriels utilise un autre système de modules.
CommonJS exporte avec module.exports et importe avec require. Un fichier dont l’extension est .cjs est toujours un fichier CommonJS, quels que soient les autres choix du projet, et un import d’un tel fichier vous 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 désigne au départ le même objet que module.exports. exports.hello = hello y ajoute une propriété ; exports = { hello } remplace la variable, et le module importateur reçoit un objet vide.
Défi
FacileUn ancien fichier, legacy/stats.cjs, est écrit à la manière de CommonJS, avec module.exports. Utilise-le depuis ton fichier notes.js pour ajouter une commande stats.
- Dans
legacy/stats.cjs, terminecountWords(notes). Cette fonction reçoit le tableau de notes et renvoie le nombre total de mots qu’elles contiennent, comptés sur l’ensemble des notes. Les mots sont séparés par des espaces. Pour les trois notes initiales,Buy milk,Call AdaetWater the plants, elle renvoie7. Pour un tableau vide, elle renvoie0. - Dans
notes.js, importe le fichier avecimport stats from './legacy/stats.cjs'. C’est un fichier CommonJS, doncstatsest son objetmodule.exports, et la fonction eststats.countWords. - Ajoute une commande
statsà la chaîne de conditions, avant leelsefinal. Elle affiche une ligne : le nombre de notes, puis le nombre de mots.3 notes, 7 wordswhereet les autres commandes continuent de fonctionner.
Essaie : saisis stats dans la zone après $ node notes.js, puis appuie sur Entrée. Tu vois 3 notes, 7 words. Saisis ensuite add Buy bread, puis stats à nouveau : tu vois toujours 3 notes, 7 words, car le stockage oublie les nouvelles notes quand le programme se termine.
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
1Exécuter JavaScript avec Node
Bonjour, NodeLire la commandeArguments de ligne de commandeCommandes5Événements, entrées et packages
Écouter avant d’émettreÉmetteurs d’événementsLire les entréesEntraînez-vous par vous-même : Playground Express