Conditions d’achèvement
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 » »
« 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.
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';Remarquez que readFile retourne une promesse. On utilise « await »
const pass=await fs.readFile('/etc/passwd','utf8');
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).