Je suis débutant dans la pile MEAN, alors que j'étudiais NodeJS, je viens avec la déclaration suivante qui me prend à l'esprit
Node.js est un framework/plate-forme basé sur JavaScript très puissant, construit sur le moteur JavaScript V8 de Google Chrome.
mais qu'est-ce que cela signifie exactement par
construit sur le moteur JavaScript V8 de Google Chrome.
et s'il est construit sur le moteur JS V8 de Chrome, pourquoi fonctionne-t-il également sur Firefox?
Pile MEAN, réorganisée de l'arrière vers l'avant:
Donc, Node.js ne "fonctionne pas sur Firefox" (il ne fonctionne pas non plus sur Google Chrome): c’est une technologie côté serveur. Considérez-le comme un remplacement de Python/Ruby/Java dans ce rôle. Ainsi, il peut/répond aux demandes de toutes sortes de clients (comme Google Chrome et Firefox).
Le terme "construit sur V8" signifie qu'il utilise le même compilateur interprète/compilateur juste-à-temps que Google Chrome. Mais les similitudes avec le chrome s'arrêtent à peu près là: Node n'a pas de moteur de rendu/analyseur css/DOM, mais a tout ce dont vous avez besoin sur un serveur tel qu'une bibliothèque HTTP et une API de système de fichiers.
En outre, et je ne veux pas dire d’offense, nous avons tous commencé où vous êtes, le fait que vous posiez même la question (ce qui, encore une fois, n’est pas une mauvaise chose!) Signifie que la construction sur une pile comme celle de MEAN est au dessus de votre tête. La documentation supposera que vous savez des choses que vous semblez ne pas savoir. Je fortement recommande de approfondir votre compréhension de JavaScript et de Node à travers des tutoriels et des applications de test barebone avant d'essayer de créer des bases de données et des frameworks.
Pour qu'un langage de programmation puisse être exécuté par un ordinateur, il doit être traduit dans un format compréhensible pour la machine (généralement appelé code machine ). Javascript n'est pas différent. Lorsque votre navigateur est présenté avec du code Javascript sur un site Web, quelque chose doit être compilé ou, dans le cas de Javascript, interprété les instructions en code machine.
V8 est le programme développé par Google pour faire exactement cela. Lorsque vous utilisez Chrome et que JavaScript est détecté sur une page, il le transmet à la V8 pour exécuter la compilation, puis votre ordinateur exécute le code obtenu.
V8 a été open source par Google. Le créateur de Node, Ryan Dahl, a modifié le code source pour que la version 8 puisse être utilisée en dehors de Chrome et dans un système d'exploitation tel que Linux ou MacOS. C'est ce que l'on entend par votre première citation.
La chose importante à noter ici est que vous n'exécutez pas vos programmes Node dans un navigateur, mais plutôt avec l'ordinateur que vous utilisez. Il n'y a pas de corrélation entre V8 et Firefox, Safari, IE, etc. Tous ces navigateurs ont leur propre interpréteur Javascript.
Ok passons à travers ça:
Node.js est un framework/plate-forme très puissant basé sur JavaScript et basé sur Le moteur JavaScript V8 de Google Chrome.
JavaScript est un langage de programmation utilisé dans les navigateurs Internet. Il a été inventé en 1995 par NetScape, je pense, et a été soumis à un organisme de certification appeléECMAen 1996.
L’ECMA a repris l’idée originale de JavaScript et créé un standard appelé ECMAScript que chaque implémentation de JavaScript devrait suivre. Vous voyez, JavaScript n'est pas un langage qui n'existe que quelque part dans l'éther - chaque navigateur Internet possède sa propre implémentation du langage - cela signifie que JavaScript ne fonctionne généralement que dans des navigateurs Internet tels que Mozilla, Safari, Opera ou Chrome. Exemple . (Internet Explorer est également livré avec une implémentation d'ECMAScript mais ils l'appellent JScript pour des raisons de licence, je crois)
L'implémentation de JavaScript fournie avec Google Chrome s'exécute sur le puissant moteurV8qui est écrit dans un langage appelé C++ . La V8 interprète votre code JavaScript et lui fournit tous les types de variables, gère la mémoire, etc. Le grand avantage de la V8 est qu’elle est open-source et qu’elle peut être intégrée à n’importe quel autre programme C++.
Les créateurs de Node _ ont donc eu l'idée de prendre la V8 et de l'améliorer en ajoutant les fonctionnalités dont un serveur a besoin pour servir les sites Web - lecture de fichiers, réponse aux demandes, routage, etc. Cela signifie qu'il est maintenant possible de programmer l'implémentation côté serveur d'un site Web utilisant JavaScript grâce à l'application Node.js qui interprète votre code et le traduit essentiellement en C++ et plus tard en code machine. La différence importante est que Node.js NE fonctionne PAS dans votre navigateur! Il fonctionne sur un serveur, un peu comme si vous codiez le back-end avec PHP et Apache.
Il n'y a aucune signification dire que NodeJS " ne fonctionne pas sur Firefox" ou "ne fonctionne sur Chrome ".
C’est une technologie de script serveur et pas du tout liée aux navigateurs.
Permet d’avoir d’abord une compréhension de base des terminologies ci-dessous.
ECMAScript - Spécification définie dans l'ECMA-262 pour la création d'un langage de script à usage général.
Javascript - L'un des langages de script à usage général conformes à la spécification ECMAScript.
Un moteur ECMAScript est un programme qui exécute le code source écrit dans une version du standard de langage ECMAScript,, par exemple, JavaScript.
Voici quelques-uns des moteurs ECMAScript de nouvelle génération pour les navigateurs Web,
So Chrome V8, ou tout simplement V8, est un moteur JavaScript à code source ouvert développé par The Chromium Project pour les navigateurs Web Google Chrome et Chromium.
Node.js est un moteur d'exécution JavaScript basé sur Le moteur JavaScript de V8 de Chrome.
J'espère que vous avez compris jusqu'à maintenant.
Considérons maintenant le terme MEAN Stack.
MEANest un ensemble de technologies JavaScript - MongoDB, Express.js, AngularJS et Node.js - utilisées pour développer des applications Web.
J'espère que cela t'aides.:)
Le nœud utilise le même "moteur" JS que chrome . Un moteur, dans ce cas, est un logiciel qui compile ou "traduit" votre code JS en code machine; ou les 0 et les 1 que votre ordinateur peut comprendre ... Cette compilation est un processus complexe, et il existe différentes approches pour la résoudre, par exemple la version 8 de Google ou la commande spidermonkey de Mozilla. Chacune de celles-ci supporte la norme JS entière (dans une certaine mesure), c'est-à-dire que tout code JavaScript peut être exécuté sur elles.
Lorsque vous exécutez un serveur de noeud, celui-ci s'exécute sur une machine faisant office de serveur. Le code n'est pas exécuté du tout sur la machine de l'utilisateur. par conséquent, le navigateur utilisé pour afficher votre contenu n'a pas d'importance.
Dans la pile MEAN, c'est un code angulaire qui s'exécute sur l'ordinateur de l'utilisateur. Cependant, il est écrit en JavaScript, qui peut être exécuté sur n’importe quel moteur javascript.
V8 Engine est un interpréteur pour Javascript utilisé dans Google Chrome.
L’affirmation selon laquelle NodeJS est construit sur ce moteur signifie qu’il utilise cet interpréteur pour son propre usage, de sorte qu’il peut également être utilisé sur le serveur, et pas uniquement dans l’environnement de bureau (comme dans Google Chrome).
NodeJS est une application distincte avec laquelle vous pouvez communiquer via Internet. Il ressemble à Apache, Nginx ou similaire, mais il n’est utilisé que pour une seule chose (comme celles mentionnées), mais il est principalement utilisé pour créer des applications similaires à celles des serveurs Web.
En réalité, NodeJS est une infrastructure côté serveur multiplateforme. Vous le savez sûrement, car il convient mieux aux applications liées aux entrées-sorties et au streaming de données, il utilise le moteur JavaScript V8 de Google Chrome aux fins susmentionnées.
Node.js est JavaScript sur le serveur. Par exemple, vous pouvez démarrer un serveur Node.js sur http: // localhost: 8000/ , et vous pouvez y accéder avec Chrome ou Firefox.
En utilisant Node.js (qui utilise la version 8), les serveurs peuvent être écrits en JavaScript plutôt que PHP ou Ruby.