Maison >interface Web >js tutoriel >Comprendre module.exports et exportations dans Node.js
Les modules Node.js sont des unités de code autonomes, promouvant la réutilisabilité et simplifiant le développement d'applications. Cet article explore la création, l'exportation et l'importation des modules à l'aide du format CommonJS, la norme Node.js.
Concepts clés:
require
et module.exports
), répandu dans Node.js et l'écosystème NPM. D'autres formats (AMD, ESM, System.Register, UMD) existent mais ne sont pas couverts ici. module.exports
pour les exportations par défaut, et la compréhension des nuances de module.exports
contre exports
. Formats de module Node.js (aperçu bref):
Bien que divers formats de modules existent en JavaScript, ce guide se concentre sur CommonJS, la norme pour Node.js. Les autres formats incluent: AMD (définition de module asynchrone), ESM (modules ES), System.Register et UMD (Définition du module universel).
en utilisant des modules intégrés:
Node.js propose des modules intégrés accessibles via le mot-clé require
. Par exemple, le module de système de fichiers (fs
) fournit des fonctions comme readdir
pour la liste des contenus du répertoire:
<code class="language-javascript">const fs = require('fs'); const folderPath = '/home/jim/Desktop/'; fs.readdir(folderPath, (err, files) => { files.forEach(file => { console.log(file); }); });</code>
Les modules CommonJS chargent de manière synchrone, traitée dans leur ordre d'apparence.
Création et exportation d'un module:
Créons un module user.js
:
<code class="language-javascript">const getName = () => 'Jim'; exports.getName = getName;</code>
Ensuite, importez-le dans index.js
:
<code class="language-javascript">const user = require('./user'); console.log(`User: ${user.getName()}`);</code>
Running node index.js
sort "User: Jim". L'objet exports
rend getName
disponible pour l'importation. Le préfixe ./
dans require
indique un fichier local; L'extension de fichier est omise.
Exportation de plusieurs éléments:
Plusieurs méthodes et valeurs peuvent être exportées:
<code class="language-javascript">const getName = () => 'Jim'; const getLocation = () => 'Munich'; const dateOfBirth = '12.01.1982'; exports.getName = getName; exports.getLocation = getLocation; exports.dob = dateOfBirth;</code>
Importez-les et utilisez-les dans index.js
au besoin. Notez que les noms exportés (dob
ici) peuvent différer des noms de variable d'origine.
Syntaxe d'exportation alternative:
Les exportations peuvent être définies en ligne:
<code class="language-javascript">exports.getName = () => 'Jim'; exports.getLocation = () => 'Munich'; exports.dob = '12.01.1982';</code>
IMPORTES DE RÉTUCTION:
La destructeur permet des importations sélectives:
<code class="language-javascript">const { getName, dob } = require('./user'); console.log(`${getName()} was born on ${dob}.`);</code>
Exportations par défaut en utilisant module.exports
:
Pour les modules exportant une seule entité, module.exports
est préféré:
<code class="language-javascript">const fs = require('fs'); const folderPath = '/home/jim/Desktop/'; fs.readdir(folderPath, (err, files) => { files.forEach(file => { console.log(file); }); });</code>
module.exports
vs exports
:
exports
est initialement une référence à module.exports
. Cependant, la réaffectation directe module.exports
remplace l'ensemble de l'objet d'exportation. Il est de la meilleure pratique d'utiliser régulièrement module.exports
pour éviter un comportement inattendu.
Conclusion:
Les modulessont fondamentaux pour le développement efficace de Node.js. Cet article fournit une base solide pour les comprendre et les utiliser efficacement. Pour plus de détails, consultez les ressources fournies.
FAQS:
La section FAQ fournie est déjà bien structurée et informative. Aucun changement nécessaire.
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!