Aller au contenu

Node.js

Infrastructure

Node.js : environnement d'exécution JavaScript côté serveur, bâti sur le moteur V8. Il fait tourner le code sur un seul fil principal piloté par une boucle d'événements, avec des entrées/sorties non bloquantes.

Schéma de séquence entre quatre acteurs : Requête, Boucle d'événements, Fil principal et libuv. 1. La requête met un callback en file dans la boucle d'événements. 2. La boucle fait exécuter ce callback par le fil principal. 3. Le fil principal délègue l'E/S lente, disque ou réseau, à libuv. 4. Si l'E/S est terminée, libuv remet le callback en file dans la boucle. 5. Si le fil principal fait un calcul long, la boucle est bloquée et tout le reste attend.

Boucle d'événements : Un seul fil exécute le JavaScript. Les opérations lentes (disque, réseau, DNS) partent chez libuv, et leur callback revient dans la file une fois le travail terminé.

Forces et limites : Il encaisse très bien des milliers de connexions concurrentes peu gourmandes en calcul (API, websockets, proxys). Un calcul lourd sur le fil principal gèle en revanche tout le processus, d'où les worker_threads.

Écosystème npm : Le registre npm héberge des millions de paquets, dont certains servent uniquement à savoir si un nombre est pair. Chaque dépendance ajoutée pour gagner cinq minutes élargit d'autant la surface d'attaque de la chaîne d'approvisionnement.

Sécurité : Par défaut, aucun bac à sable : un script lit les fichiers et ouvre des connexions avec les droits du processus. Les versions récentes proposent un modèle de permissions à activer explicitement.

Explication de la marmotte

Imagine un restaurant avec un seul serveur, mais très malin. Il prend ta commande et la passe en cuisine. Au lieu d'attendre bêtement devant les fourneaux, il file prendre celle de la table d'à côté. Quand un plat est prêt, la cuisine sonne et il vient le chercher. Avec cette méthode, un seul serveur s'occupe de dizaines de tables. Node.js fonctionne pareil, pour les ordinateurs qui répondent aux sites web et aux applis : il lance les tâches longues, passe à la suite et revient quand c'est fini. Seul piège : si on lui demande de cuisiner lui-même un plat très long, toute la salle attend.

Où ce terme est utilisé

← Tout le glossaire