Node.js
Thème :
Junior
1 vues ·2/12 leçons

Architecture et Fonctionnement de Node.js

Moteur JavaScript vs Environnement d’exécution

Moteur JavaScript (ex: V8)

Le cœur qui se charge de l’analyse, de la compilation et de l’exécution du code :

  • Parsing (analyse syntaxique)
  • Compilation JIT (Just-In-Time)
  • Exécution directe par la machine

Environnement d’exécution (Runtime)

Une plateforme complète qui intègre le moteur ainsi que des API supplémentaires :

  • API Web / Node API : Accès au système de fichiers, réseau, timers.
  • Boucle d’événements (Event Loop) : Gère les opérations de manière non bloquante.

Étapes détaillées de l’exécution

  1. Exécution du Code : Le moteur V8 compile et exécute le code.
  2. Interaction avec les API : Accès aux fonctionnalités système.
  3. Délégation au Système : Les tâches lourdes (E/S) sont déléguées au système d’exploitation.
  4. Task Queue : Les tâches terminées sont placées dans une file d’attente.
  5. Event Loop : Coordonne l’exécution. Elle vérifie si le Call Stack est vide avant de déplacer une tâche de la queue vers la pile.
  6. Worker Threads : Node.js utilise un pool de threads pour les opérations bloquantes.

La boucle d’événements (Event Loop)

C’est le mécanisme central qui permet le non-blocage. Ses phases principales :

  • Timers : callbacks de setTimeout() et setInterval().
  • I/O callbacks : traitement des I/O terminées.
  • Poll : récupération de nouveaux événements.
  • Check : callbacks de setImmediate().
  • Close callbacks : fermeture de connexions.

En résumé :

  1. JavaScript Engine (V8) exécute le code.
  2. Node.js API fournit des fonctionnalités système.
  3. Les tâches lourdes sont déléguées.
  4. Les tâches terminées vont dans la Task Queue.
  5. L’Event Loop gère la boucle d’exécution.

Prêt à passer à la suite ?

Vous avez terminé cette leçon sur Architecture et Fonctionnement de Node.js. Continuez votre apprentissage avec la prochaine leçon ou explorez d'autres formations.