Node.js est un environnement d'exécution JavaScript open-source et multiplateforme. Il s'agit d'un outil populaire pour presque tous les types de projets !

Node.js exécute le moteur JavaScript V8, le cœur de Google Chrome, en dehors du navigateur. Cela permet à Node.js d'être très performant.

Une application Node.js s'exécute dans un seul processus, sans créer un nouveau thread pour chaque requête. Node.js fournit un ensemble de primitives d'E/S asynchrones dans sa bibliothèque standard qui empêche le code JavaScript de se bloquer et, en général, les bibliothèques de Node.js sont écrites en utilisant des paradigmes non bloquants, ce qui fait du comportement bloquant l'exception plutôt que la norme.

Lorsque Node.js effectue une opération d'E/S, comme la lecture du réseau, l'accès à une base de données ou au système de fichiers, au lieu de bloquer le thread et de gaspiller des cycles de CPU en attendant, Node.js reprendra les opérations lorsque la réponse reviendra.

Cela permet à Node.js de gérer des milliers de connexions simultanées avec un seul serveur sans avoir à gérer la concurrence entre les threads, ce qui pourrait être une source importante de bogues.

Node.js a un avantage unique car des millions de développeurs frontaux qui écrivent du JavaScript pour le navigateur sont maintenant capables d'écrire le code côté serveur en plus du code côté client sans avoir à apprendre un langage complètement différent.

Dans Node.js, les nouvelles normes ECMAScript peuvent être utilisées sans problème, car vous n'avez pas besoin d'attendre que tous vos utilisateurs mettent à jour leurs navigateurs - vous devez décider quelle version ECMAScript utiliser en changeant la version de Node.js, et vous pouvez également activer des fonctionnalités expérimentales spécifiques en exécutant Node.js avec des drapeaux.