Cet article vous apporte une compréhension simple du module nodejs (avec des exemples). Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer.
Ce court article permet de comprendre rapidement le module nodejs (c'est-à-dire la spécification CommonJS).
Essence
module.exports est utilisé pour exposer une valeur. Cette valeur est un objet par défaut et peut également être écrasée comme valeur d'origine.
Essayez de consigner directement la valeur du module dans un fichier, vous pouvez obtenir :
{ id: '.', exports: {}, // 默认空对象 parent: null, filename: '/Users/a10.12/webpack-learning/src/module.js', loaded: false, children: [], paths: [ '...' ] }
Vous devez sortir ce que vous devez sortir en modifiant l'attribut exports du module, et require est utilisé Lors de l'importation d'un module, quelle est la valeur de module.exports est ce que require obtient.
Utilisez
Par exemple, il y a module.js
module.exports = { s: 2, }
et introduisez
let v = require('./module.js') console.log(v) // 输出为 { s: 2 }
valeur originale. dans index.js Il en va de même pour
module.exports = 2 let v = require('./module.js') console.log(v) // 输出为 2
Comme module.exports est un objet par défaut, il existe naturellement une telle façon d'écrire l'objet lors de l'exportation :
module.exports.s = 2
De cette façon, require obtient également { s: 2}.
Abréviation
Les patrons ont probablement estimé que module.exports était trop long à écrire, ils ont donc fait référence aux exportations vers module.exports, alors vérifiez si ces deux choses sont égales . Quand, return true :
console.log(exports === module.exports) // true
Avec cette fonctionnalité, vous pouvez facilement écrire comme ceci lors de l'exportation d'objets :
exports.s = 2 let v = require('./module.js') console.log(v) // 输出为 2
Mais vous ne pouvez pas écrire comme ceci :
// 这样 exports = 2 // 或这样 exports = { s: 2, } // 都是不可以的 let v = require('./module.js') console.log(v) // 输出为 {}
La raison est comme mentionné ci-dessus, les exportations sont à l'origine juste une référence à module.exports. Vous pouvez ajouter des attributs à l'objet référencé, mais une fois que les deux méthodes ci-dessus sont utilisées pour écraser la référence des exportations vers le module. exportations, les exportations équivaut à invalide.
Dernier rappel, si vous ne comprenez pas ce que j'ai dit ci-dessus, vous devrez peut-être approfondir votre compréhension des valeurs de référence ECMAScript et des valeurs d'origine...
Cet article est terminé ici , plus de mises à jour Pour d'autres contenus passionnants, vous pouvez prêter attention à la colonne vidéo du didacticiel node.js du site Web PHP chinois ! ! !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!