137 votes

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 d'utiliser 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.

95voto

Raynos Points 82706

C'est un événement asynchrone non bloquant. I/O construire par-dessus V8 .

Nous bénéficions donc de tous les gains de performance de V8, l'interpréteur JavaScript de Google. Comme la course aux performances de JavaScript n'est pas encore terminée, vous pouvez vous attendre à ce que Google mette constamment à jour les performances de V8 (gratuitement).

Nous avons des entrées/sorties non bloquantes, ce qui est tout simplement la bonne façon de faire des entrées/sorties. Elle est basée sur une boucle d'événements et 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'une TCP serveur, gérant les entrées/sorties de fichiers.

Il s'agit d'une plateforme de bas niveau très performante permettant d'effectuer n'importe quel type d'E/S sans avoir à écrire le tout en C à partir de zéro. Et elle évolue très bien grâce aux E/S non bloquantes.

Vous voulez donc utiliser Node.js si vous voulez é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 y a beaucoup de bibliothèques d'OS pour Node.js qui vous donneront des abstractions, comme Express.js et maintenant .

Vous ne voulez pas utiliser Node.js si vous voulez que des abstractions de haut niveau (lentes) fassent tout pour vous. Vous n'avez pas envie d'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 jeune plateforme, soit parce que vous devez écrire vous-même de gros morceaux de code pour faire des choses qui sont intégrées dans d'autres frameworks, soit parce que vous ne pouvez pas utiliser Node.js, parce que l'API n'est pas encore stable ou qu'il s'agit d'une version inférieure à 1.0.

29voto

Box9 Points 41987

Les deux avantages les plus souvent cités sont :

  • JavaScript est à la fois côté serveur et côté client. Il y a moins de choses à apprendre, moins de changements de contexte et la possibilité de réutiliser le code entre les 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é dans ce domaine. Il y a beaucoup d'idées très intéressantes en cours de développement pour le nœud - ne manquez pas de consulter le site Web de la Commission européenne. liste des modules Node.js .

18voto

yojimbo87 Points 27744

Lorsque vous êtes (ou même si vous ne l'êtes pas) un passionné de JavaScript, vous pouvez/devriez 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 préférez un niveau d'abstraction plus élevé, il existe un grand nombre d'outils d'aide à la décision. modules et le npm où vous pouvez trouver un large éventail d'applications prêtes à l'emploi.
  • Processus de développement rapide/libre - 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 les logiciels libres, pleine de passionnés et de personnes très talentueuses.
  • Conçu pour la création d'applications web en temps réel - c'est là que se trouve l'avenir (proche).

11voto

Demian Brecht Points 11083

Personnellement, j'utiliserais plus probablement Node.js quand :

  • Je veux écrire un serveur qui n'utilise pas l'option Protocole HTTP .
  • Je fais le prototype d'une implémentation de serveur.
  • J'écris un serveur qui n'attend pas une tonne de trafic (bien que je n'aie jamais profilé une implémentation Node.js à côté, disons, d'une implémentation C++ correspondante).
  • Je veux être actif dans la communauté (qui apparemment se développe assez rapidement).

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