506 votes

Qu'est-ce que Node.js?

Je ne suis pas entièrement d'obtenir ce Node.js est tout au sujet. C'est peut-être parce que je suis principalement basé sur le web d'entreprise développeur de l'application. Quelle est-elle et quelle est son utilisation?

Ma compréhension est que:

  1. Le modèle de programmation est basé sur l'événement, en particulier la façon dont il gère les I/O.
  2. Il utilise JavaScript et de l'analyseur est V8.
  3. Il peut facilement être utilisé pour créer simultanées serveur d'applications.

Sont ma compréhension correcte? Si oui, quels sont les avantages de evented I/O, c'est plus pour la simultanéité des trucs? Aussi, la direction de Node.js pour devenir un framework comme, JavaScript (V8) modèle de programmation?

213voto

postfuturist Points 9836

Je pense que les avantages sont:

  1. Développement Web dans un langage dynamique (JavaScript) sur une machine virtuelle qui est incroyablement rapide (V8). Il est beaucoup plus rapide que Ruby, Python ou Perl.

  2. Capacité à gérer des milliers de connexions simultanées avec un minimum de frais généraux sur un seul processus.

  3. JavaScript est parfait pour une boucle d'événement de première classe avec des objets de fonction et de fermetures. Les gens savent déjà comment l'utiliser de cette façon après l'avoir utilisé dans le navigateur de répondre aux événements initiés.

  4. Beaucoup de gens savent déjà JavaScript, même les gens qui ne prétendent pas être des programmeurs. C'est sans doute le plus populaire langage de programmation.

  5. À l'aide de JavaScript sur un serveur web ainsi que le navigateur réduit la différence d'impédance entre les deux environnements de programmation qui peuvent communiquer des structures de données via JSON qui fonctionnent de la même manière sur les deux côtés de l'équation. Copie le code de validation peut être partagé entre le serveur et le client, etc.

85voto

rfunduk Points 15267

V8 est une implémentation de JavaScript. Il vous permet de fonctionner de manière autonome des applications JavaScript (entre autres choses).

Node.js est tout simplement une bibliothèque écrite pour V8 qui ne evented I/O. Ce concept est un peu plus compliqué à expliquer, et je suis sûr que quelqu'un va répondre avec une meilleure explication que j'ai... L'essentiel, c'est que plutôt que de faire de certaines d'entrée ou de sortie et d'attendre qu'il arrive, vous venez de ne pas attendre qu'elle se termine. Ainsi, par exemple, demander de la dernière modification d'un fichier:

// Pseudo code
stat( 'somefile' )

Que pourrait prendre une couple de millisecondes, ou elle peut prendre quelques secondes. Avec evented I/O, il vous suffit d'incendie à la demande et au lieu d'attendre autour de vous fixer un rappel qui est exécuté lorsque la demande de finitions:

// Pseudo code
stat( 'somefile', function( result ) {
  // Use the result here
} );
// ...more code here

Cela en fait un peu comme du code JavaScript dans le navigateur (par exemple, avec Ajax fonctionnalité de style).

Pour plus d'informations, consultez l'article Node.js est véritablement passionnant qui a été mon introduction à la bibliothèque/plate-forme... je l'ai trouvé assez bon.

35voto

Asif Mushtaq Points 7943

Node.js est un outil de ligne de commande intégré pour le côté serveur de code JavaScript. Vous pouvez télécharger une archive, de compiler et d'installer la source. Il vous permet d'exécuter des programmes JavaScript.

Le JavaScript est exécuté par le V8, le moteur JavaScript développé par Google qui est utilisé dans Chrome navigateur. Il utilise une API JavaScript pour accéder au réseau et au système de fichiers.

Il est célèbre pour ses performances et la capacité à effectuer des opérations en parallèle.

La compréhension node.js est la meilleure explication de node.js j'ai trouvé à ce jour.

Voici quelques bons articles sur le sujet.

13voto

Fire Crow Points 2273

Les fermetures sont un moyen d'exécuter du code dans le contexte, il a été créé en.

Ce que cela signifie pour concurency est que vous pouvez définir des variables, puis de lancer un non bloquantes I/O de la fonction, et l'envoyer à une fonction anonyme pour son rappel.

Lorsque la tâche est terminée, la fonction de rappel s'exécuter dans le contexte avec les variables, c'est la fermeture.

La raison de fermetures sont si bons pour l'écriture d'applications non bloquantes I/O, c'est qu'il est très facile de gérer le contexte des fonctions d'exécution asynchrone.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X