Node.js et le JavaScript serveur

Depuis quelques années, le JavaScript prend une ampleur qu'on n'imaginait pas il y a 10 ans. Il permet aujourd'hui de faire des applications Web complètes et performantes. Essentiellement utilisé au sein du navigateur du côté client, l'arrivée de Node.js a permis au JavaScript d'être utilisé et interprété du côté serveur. Ainsi, JavaScript peut être utilisé pour réaliser des applications client-serveur sans avoir besoin d'utiliser un langage orienté serveur tel que le PHP, le Java, ou encore le Ruby.
Le JavaScript est un langage basé sur des événements, ce qui fait de Node.js sa grande force.

nodejs.jpeg

Caractéristiques

Node.js utilise le moteur JavaScript V8 de Google jusqu'ici utilisé par le navigateur Google Chrome. Sa particularité est d'analyser, de transformer le code JavaScript pour le rendre compréhensible pour la machine, et de l'éxecuter très rapidement. Node.js profite ainsi de cette rapidité et de ses performances.

La deuxième force de Node.js est son architecture entièrement non bloquante. Il profite en effet du système événementiel de JavaScript. Un code non bloquant permet d'effectuer un traitement pendant qu'un autre plus long n'est pas terminé :

  • Lancer une requête SQL fastidieuse
  • Afficher un message dès que la requête est exécutée
  • Faire un autre traitement en attendant

Enfin, contrairement à Apache par exemple qui crée plusieurs threads en fonction du nombre de requêtes clients, Node.js est monothread. Quel que soit le nombre de requêtes entrantes, un seul thread est utilisé. Ce fonctionnement pourrait laisser paraître un problème de performance, mais grâce à son architecture événementielle et asynchrone, Node.js est capable de gérer un très grand nombre de connexions simultanées.

Création d'un serveur

La création d'un serveur avec Node.js se fait très simplement et en quelques lignes :

nodejs creation serveur

Nous chargeons dans un premier temps le module "http". Ensuite nous créons le serveur et nous le faisons écouter sur le port 1337. A chaque connexion, le serveur répondra "Salut !".
Node.js est doté d'un gestionnaire de module : NPM (Node Packaged Modules). Le module "http" est natif mais il existe bien évidemment d'autres modules qu'il est possible d'ajouter à notre projet très facilement via l'utilitaire NPM.

Frameworks

A l'instar de Zend ou de Symfony pour PHP, Node.js a vu naître des Frameworks permettant de faciliter le développement de certaines fonctionnalités. Node.js étant très bas niveau, ces Frameworks ne sont pas (encore ?) aussi complets que Zend ou Symfony, mais permettent déjà de développer des applications plus rapidement.
Express est actuellement le plus connu. Il intègre notamment la notion de routes (statiques et dynamiques) et de templates. Voici le code permettant d'afficher du texte lorsqu'une requête sur la page d'accueil est demandée :

express

A vous de jouer

Il ne vous reste maintenant plus qu'à installer Node.js et jouer avec le JavaScript et les différents modules disponibles.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Captcha *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.