En Node.js, l'importation et l'exportation de modules sont des opérations fondamentales qui permettent de partager du code entre différents fichiers. Voici comment cela fonctionne :

Exportation de Modules

Pour rendre des parties de votre module disponibles à l'extérieur, vous devez les exporter. Vous pouvez exporter des fonctions, des objets, des classes ou des valeurs primitives.

Utilisation de module.exports:

// Dans un fichier nommé myModule.js

function direBonjour(name) {
  return `Bonjour ${name}!`;
}

module.exports = direBonjour;

 

Vous pouvez également exporter plusieurs éléments en les attachant à un objet :

// Dans un fichier nommé myModule.js

function direBonjour(name) {
  return `Bonjour ${name}!`;
}

function direAuRevoir(name) {
  return `Au revoir ${name}!`;
}

module.exports = {
  direBonjour,
  direAuRevoir
};

Utilisation de exports:

exports est un raccourci pour module.exports qui est disponible par défaut dans chaque module Node.js.

// Dans un fichier nommé myModule.js

exports.direBonjour = function(name) {
  return `Bonjour ${name}!`;
};

exports.direAuRevoir = function(name) {
  return `Au revoir ${name}!`;
};

Importation de Modules

Pour utiliser les fonctions, objets ou valeurs exportées par un autre module, vous devez les importer à l'aide de la fonction require().

Importation d'un module entier:

// Dans un autre fichier qui est dans le même répertoire que myModule.js

const myModule = require('./myModule');

console.log(myModule.direBonjour('Alice')); // Affiche : Bonjour Alice!
console.log(myModule.direAuRevoir('Bob'));  // Affiche : Au revoir Bob!

Importation de parties spécifiques d'un module:

Avec la déstructuration d'ES6, vous pouvez importer seulement les parties nécessaires d'un module.

// Dans un autre fichier qui est dans le même répertoire que myModule.js

const { direBonjour, direAuRevoir } = require('./myModule');

console.log(direBonjour('Alice')); // Affiche : Bonjour Alice!
console.log(direAuRevoir('Bob'));  // Affiche : Au revoir Bob!

Modules ES6 (ECMAScript Modules)

Node.js supporte également les modules ES6, qui utilisent import et export au lieu de require() et module.exports. Pour utiliser les modules ES6, vous devez soit nommer vos fichiers avec l'extension .mjs, soit définir "type": "module" dans votre package.json.

Exportation avec ES6:

// Dans un fichier nommé myModule.mjs

export function direBonjour(name) {
  return `Bonjour ${name}!`;
}

export function direAuRevoir(name) {
  return `Au revoir ${name}!`;
}

 

Importation avec ES6:

// Dans un autre fichier .mjs ou dans un projet avec "type": "module"

import { direBonjour, direAuRevoir } from './myModule.mjs';

console.log(direBonjour('Alice')); // Affiche : Bonjour Alice!
console.log(direAuRevoir('Bob'));  // Affiche : Au revoir Bob!

L'utilisation de modules ES6 est de plus en plus courante et est la norme dans le développement front-end moderne. Toutefois, pour les projets Node.js, les modules CommonJS (require() et module.exports) restent très utilisés et sont entièrement pris en charge.

Modifié le: jeudi 2 novembre 2023, 05:48