Nodejs est un outil incroyable qui nous permet d'utiliser javascript más allá del le navigateur.
- Qu'est-ce que tu veux dire par là?
Selon son site Web officiel Nodejs, il s'agit de:
"Il s'agit d'un environnement d'exécution JavaScript construit avec le moteur JavaScript V8 de Chrome."
Vous vous demandez sûrement quelque chose comme ... Et qu'est-ce que cela signifie?
Comme tu vois, dans le passé, javascript n'était même pas si génial, pas aussi ouvert qu’aujourd’hui. Javascript dans sa conception était développé à l'origine par Brendan eich pour netScape et il était strictement lié aux navigateurs.
Ce n'était pas le cas jusque 2009 après que Google a donné au monde son navigateur Google Chrome, il a libéré javascript de sa prison Web grâce à son moteur JavaScript V8.
- Et quel est le moteur V8? (sonne comme une boisson énergisante)
El motor es el Logiciel Quoi interpréter le code JavaScript y que a su vez, ejecuta un script acorde a las instrucciones dadas. Todos los navigateurs la toile tienen un Moteur JavaScript, Safari utilise JavaScriptCore, FireFox utilise Spidermonkey, Microsoft Edge utilise Chakra et dans ce cas Google Chrome con V8, qui est aussi en partie le moteur de Nodejs.
Ressource de Rainer Hahnekamp
Le lancement du V8 il a marqué un tournant dans l'histoire du moteur. V8 il a remplacé le rendu JavaScript relativement lent du navigateur.
La raison de cette énorme amélioration réside principalement dans la combinaison de l'interpréteur et du compilateur. Aujourd'hui, les quatre moteurs utilisent cette technique. L'interpréteur exécute le code source presque immédiatement. Le compilateur traduit le code source en code machine que le système de l'utilisateur exécute directement.
Vous vous demandez peut-être ...
- En fin de compte, est-ce que tout cela a à voir avec Nodejs?
Eh bien, la relation est qu'un jour Ryah Dahll, le créateur de Nodejs, cherchant un moyen de créer des serveurs Web qui prennent en compte les besoins du Web actuel, c'est-à-dire un grand nombre d'utilisateurs et tous accédant en temps réel, il a trouvé le moteur google v8 et l'a fait fonctionner en dehors du navigateur, c'est-à-dire dans le système d'exploitation, et à partir de ce moment, il est né Nodejs. et qui le présente dans le JsConf, une conférence Javascript.
Nodejs est spécial car selon son site officiel:
“utiliza un modelo de I/O dirigida a eventos no bloqueantes que hace que être ligero y eficiente, ideal para aplicaciones en tiempo real con intenso intercambio de datos a través de dispositivos distribuidos”
Comme vous le verrez, ce n'est pas un concept simple, surtout si vous débutez, je vais donc commencer par détailler ce qu'est Nodejs:
Nodejs C'est un environnement d'exécution javascript qui est construit avec le moteur google chrome v8 qui est un modèle d'opérations non bloquant et orienté événement.
Eh bien, cela n'aide pas beaucoup non plus, mais laissez-moi vous expliquer à partir de cette déclaration.
Nodejs est basé sur le Moteur V8 créé par Google pour interpréter javascript dans Chrome, Profitant de ce moteur Nodejs, compilez le code JavaScript vers la langue maternelle, en plus d'avoir une grande vitesse d'exécution, la simplicité de l'interface qui Nodejs nos provee es tan increíble, que iniciar un serveur nos lleva menos de 20 líneas de código, por ejemplo:
// Le module HTTP est chargé var http = require ("http"); // Créer le serveur HTTP, et définir l'écoute // des requêtes sur le port 8000 http.createServer (function (request, response) {// L'en-tête HTTP est défini, avec l'état HTTP (OK: 200) et le type de contenu response.writeHead (200, {'Content-Type': 'text / plain'}); // Répond, dans le corps de la réponse, avec le message "Hello World" response.end ('Hello World! n');}) . écouter (8000); // L'URL pour accéder au serveur est écrite console.log ('Server in url http://127.0.0.1:8000/');
La particularité de Nodejs réside dans un morceau appelé EventLoop.
Veras Nodejs se pose en réponse à un problème de programmation séquentielle traditionnelle. Dans les langages tels que Java, C ++ ou C#, qui sont basés sur des threads, il existe un maximum théorique qui est donné par la mémoire que chaque thread d'exécution consomme sur la machine sur laquelle il est déployé.
Nodejs à la place c'est fil unique(ou de fil unique), ce thread d'exécution unique est appelé EventLoop et sa fonction est d'exécuter du code Javascript qui est par nature.
Ressource de Paradigme numérique
Avant l'arrivée des opérations d'entrée / sortie(Entrée sortie) délègue leur exécution à des sous-systèmes spécialement préparés pour être traités en arrière-plan.
De cette façon, le thread d'exécution n'est pas bloqué (non bloquant), tandis que l'EventLoop pointe vers la fonction qui sera exécutée une fois que le traitement hors ligne est terminé (rappeler).
Un moyen simple de comprendre ce que EventLoop c'est imaginer que le système est comme un restaurant, dans lequel on a un seul ouvrier: un serveur. Notre serveur est en charge de placer les gens à table et de prendre leur commande de nourriture (tâche asynchrone)Si le serveur devait préparer la nourriture, nous le bloquerions pour qu'il puisse assister à la table suivante.
Au lieu de cela, le serveur envoie la commande à la cuisine (threadPool), dans lequel l'un des cuisiniers le prépare. Lorsque la nourriture est prête, il appellera le serveur pour la porter à table, notre serveur aura noté la correspondance entre la nourriture et le numéro de table pour connaître l'endroit où il doit livrer la nourriture (rappeler).
J'espère que cette introduction a suffi à susciter l'intérêt d'en savoir plus sur Nodejs. Pour plus d'informations et des exemples d'applications sur cette plate-forme, vous pouvez visiter la documentation officielle de Nodejs.