web-dev-qa-db-fra.com

Qu'est-ce que ça veut dire que nodeJS est construit sur le moteur V8?

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?

13
James LeBorn

Pile MEAN, réorganisée de l'arrière vers l'avant:

  • MongoDB: persistance des données, stocke les données pour une récupération ultérieure
  • Node.js: serveur d'applications Web, répond aux demandes des clients
  • Express: infrastructure d'application Web, réduit la densité du nœud
  • Angular.js: framework de navigateur

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.

18
Jared Smith

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.

6
ccnixon

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.

5
PeterTheLobster

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.

  • Ecma International - Une organisation qui crée des normes pour les technologies.
  • ECMA-262 - Il s'agit d'une norme publiée par Ecma International. Il contient la spécification pour un usage général
    langage de script, ex: Javascript.
  • 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, 

  • Carakan : Un moteur ECMAScript développé par Opera Software ASA, sortie du navigateur Web Opera, (jusqu'au passage à la V8 avec Opera 15)
  • Chakra (JScript9): Un moteur ECMAScript utilisé dans Internet Explorer.
  • Chakra : Un moteur ECMAScript utilisé dans Microsoft Edge.
  • SpiderMonkey : Un moteur ECMAScript dans les applications Mozilla Gecko, , Y compris Firefox.
  • JavaScriptCore : Un moteur ECMAScript, utilisé dans le projet WebKit et les applications Telles que Safari.
  • Tamarin : Un moteur ECMAScript utilisé dans Adobe Flash.
  • Nashorn : Un moteur ECMAScript utilisé dans le kit de développement Oracle Java (JDK)
  • V8 : Un moteur ECMAScript utilisé dans Google Chrome, Node.js et V8.NET.

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. 

  • Node.js - Un environnement d'exécution JavaScript côté serveur, basé sur le moteur d'exécution JavaScript V8 de Google Chrome.
  • Express - Un framework léger utilisé pour créer des applications Web dans Node
  • MongoDB - Un système de base de données NoSQL sans schéma.
  • AngularJS - Un framework d'applications Web frontales open source basé sur JavaScript.

J'espère que cela t'aides.:)

1
Eldho NewAge

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.

1
nadavvadan

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.

0
VentyCZ

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.

0
NATS

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.

0
LearnMoreCoding.com