Bibliothèque standard JavaScript (Node.js) : aperçu complet
Node.js est un environnement d'exécution JavaScript, construit sur le moteur V8. L'un de ses principaux avantages est sa riche bibliothèque standard, qui fournit des centaines de modules prêts à l'emploi pour résoudre les tâches quotidiennes du développement backend : de la gestion du système de fichiers à la création de serveurs HTTP. Dans cet article, nous examinerons les modules clés, leurs fonctionnalités et fournirons des exemples de code pratiques.
1. Module fs (File System)
Le module fs est la base pour travailler avec les fichiers et les répertoires. Il prend en charge les opérations synchrones et asynchrones.
- Lecture d'un fichier (asynchrone) :
const fs = require('fs');
fs.readFile('example.txt', 'utf8', (err, data) => { if (err) throw err; console.log(data);});- Écriture dans un fichier :
fs.writeFile('output.txt', 'Bonjour, Node.js!', (err) => { if (err) throw err; console.log('Fichier enregistré');});- Gestion des répertoires (création, suppression, lecture) :
// Création d'un dossierfs.mkdir('newDir', { recursive: true }, (err) => { if (err) throw err; console.log('Dossier créé');});
// Lecture du contenu d'un dossierfs.readdir('.', (err, files) => { console.log(files); // tableau des noms de fichiers});2. Module path
Le module path simplifie la gestion des chemins de fichiers et de dossiers, indépendamment du système d'exploitation.
- Concaténation de chemins :
const path = require('path');
const fullPath = path.join('users', 'admin', 'docs', 'file.txt');console.log(fullPath); // users/admin/docs/file.txt (sous Linux) ou users\\admin\\docs\\file.txt (sous Windows)- Obtention de l'extension d'un fichier :
const ext = path.extname('image.png');console.log(ext); // '.png'- Normalisation d'un chemin (supprime les « .. » et « . » superflus) :
const normalized = path.normalize('/foo/bar//baz/asdf/quux/..');console.log(normalized); // /foo/bar/baz/asdf3. Module http
Permet de créer des serveurs et des clients HTTP. C'est sur ce module que sont construits des frameworks comme Express.js.
- Serveur HTTP simple :
const http = require('http');
const server = http.createServer((req, res) => { res.writeHead(200, { 'Content-Type': 'text/plain' }); res.end('Bonjour le monde !');});
server.listen(3000, () => { console.log('Serveur démarré sur le port 3000');});- Client HTTP (effectuer une requête GET) :
http.get('http://jsonplaceholder.typicode.com/posts/1', (res) => { let data = ''; res.on('data', chunk => data += chunk); res.on('end', () => console.log(JSON.parse(data)));});4. Module events
Implémente le modèle « Observateur » (EventEmitter). Permet de créer ses propres événements et de s'y abonner.
const EventEmitter = require('events');
class MyEmitter extends EventEmitter {}
const myEmitter = new MyEmitter();
// Abonnement à un événementmyEmitter.on('greet', (name) => { console.log(`Bonjour, ${name}!`);});
// Génération d'un événementmyEmitter.emit('greet', 'Alexis'); // Bonjour, Alexis!5. Module buffer
Buffer est un stockage temporaire pour les données binaires. Il est utilisé lors du travail avec les flux, les fichiers, les protocoles réseau.
// Création d'un buffer à partir d'une chaîneconst buf = Buffer.from('Bonjour', 'utf8');console.log(buf); // <Buffer 42 6f 6e 6a 6f 75 72>
// Concaténation de buffersconst buf1 = Buffer.from('Node');const buf2