web-dev-qa-db-fra.com

Pourquoi et quand utiliser Node.js?

Duplicata possible:
Comment décider quand utiliser Node.js?

Désolé si je suis un peu ambigu, mais j'essaie de comprendre les avantages réels de l'utilisation de Node.js au lieu d'un autre langage côté serveur.

Je suis un passionné de JavaScript, donc je vais probablement jouer avec Node.js, mais je veux savoir si je dois l'utiliser dans mes projets.

134
gion_13

C'est un événement asynchrone non bloquant I/O build onop of V8 .

Nous avons donc tout le gain de performances de V8 qui est l'interpréteur JavaScript de Google. Étant donné que la course aux performances JavaScript n'est pas encore terminée, vous pouvez vous attendre à ce que Google mette constamment à jour les performances sur V8 (gratuitement).

Nous avons des E/S non bloquantes, ce qui est tout simplement la bonne façon de faire des E/S. Ceci est basé sur une boucle d'événement et sur l'utilisation de rappels asynchrones pour vos E/S.

Il vous donne des outils utiles comme la création d'un serveur HTTP, la création d'un serveur TCP , la gestion des E/S de fichiers.

C'est une plate-forme hautement performante de bas niveau pour faire tout type d'E/S sans avoir à écrire le tout en C à partir de zéro. Et il évolue très bien grâce aux E/S non bloquantes.

Vous souhaitez donc utiliser Node.js si vous souhaitez écrire des applications hautement évolutives et efficaces en utilisant des E/S non bloquantes tout en disposant d'un langage de script de haut niveau. Si nécessaire, vous pouvez optimiser manuellement certaines parties de votre code en écrivant des extensions en C.

Il existe de nombreuses bibliothèques de système d'exploitation pour Node.js qui vous donneront des abstractions, comme Express.js et maintenant .

Vous ne voulez pas utiliser Node.js si vous voulez que les abstractions de haut niveau (lentes) fassent tout pour vous. Vous ne voulez pas utiliser Node.js si vous voulez RAD . Vous ne voulez pas utiliser Node.js si vous ne pouvez pas vous permettre de faire confiance à une plate-forme jeune, soit parce que vous devez écrire de gros morceaux de code vous-même pour faire des choses qui sont intégrées dans d'autres cadres ou parce que vous ne pouvez pas utiliser Node .js, car l'API n'est pas encore stable ou c'est une version sous 1.0.

94
Raynos

Les deux avantages les plus cités sont:

  • JavaScript est à la fois côté serveur et côté client. Il y a moins de choses à apprendre, moins de changement de contexte et la possibilité de réutiliser le code des deux côtés.
  • Utilise des E/S non bloquantes et le moteur V8 de Chrome pour fournir des serveurs rapides et hautement évolutifs.

Pour moi cependant, la partie la plus intéressante est la quantité d'activité qui se passe dans ce domaine. Il y a beaucoup d'idées très intéressantes en cours de développement pour le nœud - assurez-vous de consulter la liste des modules Node.js .

29
David Tang

Lorsque vous êtes (ou même si vous n'êtes pas) un passionné de JavaScript, vous pouvez/devez utiliser Node.js pour un certain nombre de raisons:

  • Il s'agit d'un cadre de bas niveau, léger et autonome qui apporte la puissance de JavaScript à l'environnement côté serveur.
  • Si vous aimez une abstraction de niveau plus élevé, il existe un grand nombre de modules et npm gestionnaire de paquets où vous pouvez trouver un large éventail d'applications prêtes à l'emploi.
  • Processus de développement rapide/sans encombre - par exemple, vous n'avez pas besoin de tonnes d'outils supplémentaires pour commencer à écrire des choses sérieuses.
  • Grande communauté basée sur l'open source, pleine de passionnés et de personnes très talentueuses.
  • Conçu pour créer des applications orientées Web en temps réel - c'est là que se situe l'avenir (proche).
18
yojimbo87

Personnellement, j'utiliserais très probablement Node.js lorsque:

  • Je veux écrire un serveur qui n'utilise pas le protocole HTTP .
  • Je prototype une implémentation de serveur.
  • J'écris un serveur qui n'attend pas une tonne de trafic (même si je n'ai jamais profilé une implémentation Node.js à côté, disons, d'une implémentation C++ correspondante).
  • Je veux devenir actif dans la communauté (qui croît apparemment assez rapidement).
11
Demian Brecht