TW3 — Technologies du Web 3

Synthèse — Node.js

Bilan du chapitre Node.js : event loop, modules, système de fichiers, écosystème npm et premier serveur HTTP natif.

🧾 Ce qu'on a vu

ConceptCe qu'il faut retenir
Runtime vs frameworkNode.js est un environnement d'exécution (runtime), pas un framework. Il embarque V8 + API système (fs, http, process…). Express est un framework qui s'exécute sur Node.js.
Event loopBoucle d'événements qui traite les I/O en asynchrone sans bloquer le thread. L'application reste réactive sous charge. Node.js n'est pas plus rapide en CPU pur — il excelle sur les charges I/O-bound.
CommonJS vs ESMDeux systèmes de modules coexistent. CommonJS (require/module.exports) est l'historique par défaut. ESM (import/export) est le standard moderne, activé avec "type": "module" ou l'extension .mjs. Avec moduleResolution: "NodeNext", l'extension .js est obligatoire dans les imports.
processObjet global donnant accès à process.env, process.argv, process.cwd() — la fenêtre sur l'environnement d'exécution. Avec @types/node, chaque propriété est typée.
npm et package.jsonnpm est le registre et l'outil CLI. package.json déclare les dépendances (dependencies vs devDependencies), les scripts et les métadonnées. package-lock.json fige les versions exactes pour la reproductibilité.
Système de fichiersfs/promises + await pour du code asynchrone moderne. fs.readFileSync bloque l'event loop — à éviter en serveur. Les streams traitent les gros fichiers par morceaux sans tout charger en mémoire. Les buffers stockent des données binaires brutes.
Serveur HTTP natifLe module http permet de créer un serveur sans dépendance externe. IncomingMessage (req) donne accès à url, method, headers. ServerResponse (res) utilise writeHead() + end(). Codes 404 (introuvable) et 405 (méthode non autorisée) sont distincts.

🔄 Ce qui vient ensuite

Dans la séance 5 (Express), on migre ce serveur natif vers Express :

  • Routage déclaratif (app.get, app.post…)
  • Middlewares (logging, parsing JSON, authentification)
  • Gestion d'erreurs centralisée

Express n'efface pas Node.js — il s'appuie sur lui. Comprendre le http natif fait la différence quand un middleware ne fait pas ce qu'on attend.

📋 Points clés à retenir

  1. Node.js ≠ framework : c'est le runtime. Express est le framework sur Node.js.
  2. Event loop = non-bloquant : les I/O ne bloquent pas le thread. Pour du CPU intensif, il faut du clustering.
  3. ESM moderne : avec moduleResolution: "NodeNext", importer "./fichier.js" même depuis un .ts.
  4. fs/promises + await : l'API moderne pour les fichiers. Éviter readFileSync en serveur.
  5. Streams pour les gros fichiers : createReadStream + pipeline pour ne pas tout charger en mémoire.
  6. 404 ≠ 405 : 404 = route inconnue, 405 = méthode non gérée sur une route connue.
  7. npm install -D pour les outils de dev, npm install pour les dépendances d'exécution.

📦 Projet fil rouge

Branche session-04 du dépôt projet-fil-rouge-tw3 : premier serveur HTTP natif renvoyant du JSON, avec codes 404/405.

→ Voir la branche

🔗 Liens

→ Retour à l'introduction · Atelier · Exercice · Quiz · Ressources

Node.js

Terminez le quiz du chapitre pour le marquer comme complété.

Tableau de bord

On this page