Node.js - Introduction

Qu'est-ce que Node.js?

Node.js est une plate-forme côté serveur basée sur le moteur JavaScript de Google Chrome (moteur V8). Node.js a été développé par Ryan Dahl en 2009 et sa dernière version est v0.10.36. La définition de Node.js telle que fournie par sa documentation officielle est la suivante -

Node.js est une plate-forme basée sur le moteur d' exécution JavaScript de Chrome pour créer facilement des applications réseau rapides et évolutives. Node.js utilise un modèle d'E / S non bloquant et piloté par les événements qui le rend léger et efficace, parfait pour les applications en temps réel gourmandes en données qui s'exécutent sur des appareils distribués.

Node.js est un environnement d'exécution open source multiplateforme pour le développement d'applications côté serveur et réseau. Les applications Node.js sont écrites en JavaScript et peuvent être exécutées dans l'environnement d'exécution Node.js sous OS X, Microsoft Windows et Linux.

Node.js fournit également une riche bibliothèque de divers modules JavaScript qui simplifie dans une large mesure le développement d'applications Web utilisant Node.js.

Node.js = Runtime Environment + JavaScript Library

Caractéristiques de Node.js

Voici quelques-unes des fonctionnalités importantes qui font de Node.js le premier choix des architectes logiciels.

  • Asynchronous and Event Driven- Toutes les API de la bibliothèque Node.js sont asynchrones, c'est-à-dire non bloquantes. Cela signifie essentiellement qu'un serveur basé sur Node.js n'attend jamais qu'une API renvoie des données. Le serveur passe à l'API suivante après l'avoir appelée et un mécanisme de notification des événements de Node.js aide le serveur à obtenir une réponse de l'appel d'API précédent.

  • Very Fast - Étant construite sur le moteur JavaScript V8 de Google Chrome, la bibliothèque Node.js est très rapide dans l'exécution du code.

  • Single Threaded but Highly Scalable- Node.js utilise un modèle à thread unique avec une boucle d'événements. Le mécanisme d'événement aide le serveur à répondre de manière non bloquante et rend le serveur hautement évolutif par opposition aux serveurs traditionnels qui créent des threads limités pour traiter les demandes. Node.js utilise un seul programme threadé et le même programme peut fournir un service à un plus grand nombre de requêtes que les serveurs traditionnels comme Apache HTTP Server.

  • No Buffering- Les applications Node.js ne tamponnent jamais aucune donnée. Ces applications produisent simplement les données par blocs.

  • License- Node.js est publié sous la licence MIT .

Qui utilise Node.js?

Voici le lien sur le wiki github contenant une liste exhaustive des projets, applications et entreprises qui utilisent Node.js. Cette liste comprend eBay, General Electric, GoDaddy, Microsoft, PayPal, Uber, Wikipins, Yahoo !, et Yammer pour n'en nommer que quelques-uns.

Concepts

Le diagramme suivant décrit certaines parties importantes de Node.js dont nous discuterons en détail dans les chapitres suivants.

Où utiliser Node.js?

Voici les domaines dans lesquels Node.js fait ses preuves en tant que partenaire technologique parfait.

  • Applications liées aux E / S
  • Applications de diffusion de données
  • Applications temps réel intensives en données (DIRT)
  • Applications basées sur les API JSON
  • Applications sur une seule page

Où ne pas utiliser Node.js?

Il n'est pas conseillé d'utiliser Node.js pour les applications gourmandes en ressources processeur.