NodeJS est une plate-forme de développement de logiciels JavaScript qui permet aux développeurs de créer des applications Web hautes performances et hautement évolutives. Il est basé sur le moteur JavaScript V8 de Google Chrome et utilise un modèle d'E/S non bloquant, ce qui le rend léger et efficace. Ce chapitre présentera quelques concepts de base de NodeJS.
1. Moteur V8
Le moteur V8 est un interpréteur JavaScript open source développé par Google pour Chrome. Il compile le code JavaScript en code machine avant de l'exécuter, au lieu d'utiliser un interpréteur. La V8 peut fonctionner de manière autonome ou être intégrée à n’importe quelle application C++. NodeJS utilise la V8 comme moteur d'exécution et expose également bon nombre de ses fonctionnalités via une API.
2. Boucle d'événement
L'un des principaux concepts de NodeJS est la boucle d'événements. Il est responsable de la planification des tâches non bloquantes à exécuter dans le futur. Chaque fois qu'un script NodeJS démarre, une boucle d'événements est créée. Cette boucle est une entité qui attend des tâches, les exécute, puis se met en veille, en attendant d'autres tâches. Les tâches peuvent être planifiées pour s'exécuter immédiatement ou pour s'exécuter à un moment ultérieur.
3. E/S non bloquantes
NodeJS utilise un modèle d'E/S non bloquant, ce qui signifie que les opérations d'E/S telles que la lecture et l'écriture de fichiers, l'accès au réseau, etc., ne bloquent pas l'exécution d'autres codes JavaScript. Au lieu de cela, ces opérations sont déléguées au système d’exploitation, qui les effectue en arrière-plan. Lorsque l'opération d'E/S est terminée, un rappel est programmé pour s'exécuter dans la boucle d'événements.
4. Modules
NodeJS utilise un système de modules pour organiser le code. Chaque fichier JavaScript peut être un module et chaque module a sa propre portée. Cela signifie que les variables définies dans un module ne sont pas visibles dans les autres modules à moins d'être explicitement exportées. Les modules peuvent exporter des fonctions, des objets ou des valeurs, qui peuvent ensuite être importés par d'autres modules.
5. NPM
NPM est le gestionnaire de packages pour NodeJS. Il est utilisé pour installer et gérer les dépendances des packages. Chaque application NodeJS possède un fichier package.json qui répertorie ses dépendances. Lorsque vous exécutez npm install, NPM examine ce fichier et installe toutes les dépendances qui y sont répertoriées. NPM fournit également un référentiel de packages dans lequel les développeurs peuvent publier et partager leurs packages de code.
6. Rappels
NodeJS utilise beaucoup les rappels. Un rappel est une fonction qui est passée en argument à une autre fonction et qui est appelée lorsqu'une certaine condition est remplie. Dans NodeJS, les rappels sont souvent utilisés pour gérer les opérations d'E/S non bloquantes. Lorsqu'une opération d'E/S est terminée, le rappel correspondant est planifié pour être exécuté dans la boucle d'événements.
Voici quelques-uns des concepts de base de NodeJS. Comprendre ces concepts est essentiel au développement efficace d'applications NodeJS. Dans le chapitre suivant, nous explorerons comment ces concepts sont appliqués en pratique lors de la création d'API dans NodeJS.