Maison >interface Web >js tutoriel >Comprendre module.exports et exportations dans Node.js

Comprendre module.exports et exportations dans Node.js

William Shakespeare
William Shakespeareoriginal
2025-02-09 08:53:11879parcourir

Understanding module.exports and exports in 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:

  • Développement modulaire dans Node.js: Les modules sont essentiels pour construire des applications Node.js efficaces, maintenables et réutilisables.
  • Format du module CommonJS: Cet article se concentre sur le format CommonJS (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.
  • Modules d'exportation et d'importation: Des instructions détaillées sont fournies sur la création, l'exportation et l'utilisation de modules. Cela inclut l'exportation de plusieurs valeurs, en utilisant 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 modules

sont 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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn