3.5: Modules JS

Pour pouvoir utiliser des fonctionnalités fournies par différentes librairies, il faut d'abord aller les chercher.
Vous l'avez vu dans d'autres langages: « import » dans python et Java, « include » ou « require » en PHP. «include » en C.

Node.js propose deux manières de le faire:

  • import: Ce sont les « modules JS ». On peut utiliser cette syntaxe à la fois en Node.js et sur le navigateur.  C'est la manière plus récente de faire.
  • require: C'est une fonctionnalité « Common JS ». C'est encore, pour l'instant, une manière très utilisée de faire.
[Dans ce cours (écrit en 2023), on a choisi d'utiliser « import », parce-que c'est l'approche qui parait avoir le plus d'avenir.]
 
Exemple d'import:
import fs from 'node:fs/promises';
Ceci veut dire :
« importer la librairie « node:fs/promises » dans un objet qu'on veut appeler « fs » »
node:fs/promises : on veut la version « promises » de la librairie fs qui fait partie de Node.js.
fs veut dire « filesystem ». C'est la librairie permettant de manipuler des fichiers.
Certaines librairies, comme fs, existent en plusieurs versions (synchrone, callback, promesses). Dans ce cours, on utilisera les promesses.
 
Maintenant, on a l'objet « fs », qui contient plein de fonctions. Celle qui nous intéresse est « readFile »:
import fs from 'node:fs/promises';

const pass=await fs.readFile('/etc/passwd','utf8');
Remarquez que readFile retourne une promesse. On utilise « await »
 
Pour pouvoir utiliser import, il faut être dans un « module ». Au lieu d'utiliser des fichiers « .js » (exemple.js) on va utiliser des fichier « .mjs » (exemple.mjs).