Modules intégrés de Node.js

Les modules intégrés de Node.js sont des modules fonctionnels de base fournis avec le runtime Node.js et peuvent être utilisés sans installation supplémentaire. Ces modules fournissent des fonctions système de base telles que les opérations sur les fichiers, la communication réseau et la gestion des processus, et sont des outils fondamentaux pour le développement Node.js.

Contrairement aux modules tiers qui doivent être installés via npm, les modules intégrés peuvent être chargés directement via larequire()fonction, par exemple :

const fs = require('fs'); // Module de système de fichiers
const http = require('http'); // Module HTTP

Introduction aux modules intégrés courants

Voici une description détaillée et un aperçu fonctionnel des principaux modules intégrés de Node.js.

Nom du module Description Classes/Méthodes courantes Utilisations typiques
fs (Système de fichiers) Opérations sur le système de fichiers readFile, writeFile, mkdir, readdir, createReadStream, createWriteStream Lecture/écriture de fichiers, opérations sur les répertoires
path Gérer les chemins de fichiers join, resolve, dirname, basename, extname Gestion des chemins multiplateforme
http Serveur/client HTTP createServer, request, get Créer un serveur/client web
https Serveur/client HTTPS createServer, request Créer des services web sécurisés
url Analyse et traitement d'URL parse, format, URLClasse Analyse et construction d'URL
querystring Gestion des chaînes de requête parse, stringify Gérer les paramètres de requête d'URL
os Informations sur le système d'exploitation cpus, freemem, totalmem, homedir, hostname Obtenir des informations système
events Gestion des événements EventEmitter, on, emit, once Système d'événements personnalisé
flux Opérations sur les flux Readable, Writable, Duplex, Transform, pipe Gérer les flux de données
crypto Fonctionnalité de chiffrement createHash, createCipher, createDecipher, randomBytes Chiffrement/déchiffrement/hachage
zlib Compression/décompression createGzip, createGunzip, createDeflate, createInflate Compression/décompression de données
util Outils utilitaires promisify, inherits, format, types Fonctions utilitaires
child_process Gestion des processus enfants exec, execFile, spawn, fork Créer des processus enfants
cluster Gestion de cluster fork, isMaster, isWorker Répartition de charge multi-processus
dns Résolution de noms de domaine lookup, resolve, reverse Résolution de noms de domaine
domain Module de gestion des erreurs provenant de plusieurs opérations asynchrones create , run, add Fournit un mécanisme pour regrouper plusieurs opérations d'E/S différentes et gérer leurs erreurs de manière uniforme.
net Opérations réseau createServer, connect, Socket Serveur/client TCP
dgram Datagramme UDP createSocket, send, bind Communication UDP
readline Lire ligne par ligne createInterface, on('line') Interaction en ligne de commande
repl Interpréteur interactif start, context Créer un environnement REPL
vm Machine virtuelle runInContext, createContext, Script Exécuter du code JavaScript
assert Tests d'assertions equal, strictEqual, deepEqual, throws Assertions de tests unitaires
buffer Gestion des données binaires Buffer, alloc, from, concat Gérer les données binaires
console Sortie console log, error, time, timeEnd Sortie de débogage
timers Minuteurs setTimeout, setInterval, setImmediate, clearTimeout Tâches planifiées
perf_hooks Surveillance des performances performance, PerformanceObserver Mesure des performances
worker_threads Threads de travail Worker, isMainThread, parentPort Programmation multithread

1. fs (module du système de fichiers)

fsLe module fournit des API pour interagir avec le système de fichiers, prenant en charge les opérations synchrones et asynchrones.

Fonctionnalités principales :

  • Lire/écrire des fichiers
  • Créer/supprimer des répertoires
  • Surveiller les modifications de fichiers
  • Obtenir des informations sur les fichiers

Exemple de code :

Exemple

const fs = require('fs');

// Lire le fichier de manière asynchrone
fs.readFile('example.txt', 'utf8', (err, data) => {
  if (err) throw err;
  console.log(data);
});

// Écrire un fichier de manière synchrone
try {
  fs.writeFileSync('output.txt', 'Hello Node.js');
  console.log('File written successfully');
} catch (err) {
  console.error(err);
}

2. path (module Path)

pathLe module fournit des fonctions utilitaires pour gérer les chemins de fichiers et de répertoires, et peut être utilisé sur toutes les plateformes.

Méthodes courantes :

  • path.join()- Joindre des chemins
  • path.resolve()- Résoudre en chemin absolu
  • path.basename()- Obtenir le nom du fichier
  • path.extname()- Obtenir l'extension du fichier

Exemple de code :

Exemple

const path = require('path');

const fullPath = path.join(__dirname, 'files', 'example.txt');
console.log(fullPath); // Sortie similaire à : /home/user/project/files/example.txt

const ext = path.extname('index.html');
console.log(ext); // Sortie : .html

3. http (module HTTP)

httpLe module permet à Node.js de fonctionner comme serveur ou client HTTP.

Fonctionnalités principales :

  • Créer un serveur HTTP
  • Effectuer des requêtes HTTP
  • Gérer les requêtes et réponses HTTP

Exemple de code : créer un serveur simple

Exemple

const http = require('http');

const server = http.createServer((req, res) => {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello Node.js Server');
});

server.listen(3000, () => {
  console.log('Server running at http://localhost:3000/');
});

4. events (module d'événements)

eventsLe module fournit une interface de programmation événementielle et constitue la base de la programmation asynchrone dans Node.js.

Concepts clés :

  • Classe EventEmitter
  • Écoute d’événements (on)
  • Déclenchement d’événements (emit)

Exemple de code :

Exemple

const EventEmitter = require('events');

class MyEmitter extends EventEmitter {}

const myEmitter = new MyEmitter();

// Écouter l’événement
myEmitter.on('event', () => {
  console.log('L’événement a été déclenché !');
});

// Déclencher l’événement
myEmitter.emit('event');

5. os (Module du système d’exploitation)

osLe module fournit des méthodes utilitaires et des propriétés liées au système d'exploitation.

Fonctionnalités courantes :

  • Obtenir des informations sur le processeur
  • Obtenir des informations sur la mémoire
  • Obtenir des informations sur les interfaces réseau
  • Obtenir le répertoire temporaire du système

Exemple de code :

Exemple

const os = require('os');

console.log(os.platform()); // Plateforme du système d'exploitation
console.log(os.totalmem()); // Mémoire totale du système
console.log(os.freemem()); // Mémoire disponible du système
console.log(os.cpus()); // Informations sur le processeur

Autres modules intégrés importants

1. util (Module utilitaire)

utilLe module fournit diverses fonctions utilitaires, notamment :

  • Vérification de type
  • Formatage de chaînes
  • Conversion de fonctions de rappel en Promesses
  • Utilitaires d'héritage

2. crypto (Module cryptographique)

cryptoLe module fournit des fonctionnalités de chiffrement, notamment :

  • Algorithmes de hachage
  • HMAC
  • Chiffrement/déchiffrement
  • Signatures numériques

3. stream (module Stream)

streamLe module est une interface abstraite pour la gestion des données en flux, et de nombreux modules dans Node.js sont implémentés à partir de flux.

4. child_process (module Child Process)

child_processLe module permet de créer et de contrôler des processus enfants, et peut exécuter des commandes système ou d'autres programmes.

5. url (module URL)

urlLe module fournit des outils pour l'analyse et le formatage des URL.


Comment utiliser les modules intégrés

Tous les modules intégrés peuvent être chargés directement via lerequire()fonction :

Exemple

const moduleName = require('module_name');

Notes :

  1. Les noms de modules n'ont pas besoin de chemin
  2. Les noms de modules sont sensibles à la casse
  3. Aucune installation requise, fourni avec Node.js
  4. Différentes versions de Node.js peuvent inclure différents modules intégrés

Avantages des modules intégrés

  1. Haute performance: étroitement intégré à l'environnement d'exécution Node.js
  2. Stabilité: testé en profondeur, fiabilité élevée
  3. Aucune installation requise: fonctionne immédiatement
  4. Multiplateforme: comportement cohérent sur différents systèmes d'exploitation
  5. Documentation complète: documentation officielle détaillée
Autres extensions