Node.js

Un article de Wikipédia, l'encyclopédie libre.
Aller à : navigation, rechercher
Node.js
Logo

Développeur Ryan Lienhart Dahl et les développeurs de Node.js
Dernière version 6.2.1 ()
LTS 4.4.5 ()Voir et modifier les données sur Wikidata
Écrit en C++, JavaScript et CVoir et modifier les données sur Wikidata
Environnement MacOS, Linux, Solaris, FreeBSD, OpenBSD, HP webOS et Microsoft WindowsVoir et modifier les données sur Wikidata
Type FrameworkVoir et modifier les données sur Wikidata
Licence Licence X11 (d)Voir et modifier les données sur Wikidata
Site web nodejs.orgVoir et modifier les données sur Wikidata

Node.js est une plateforme logicielle libre et événementielle en JavaScript orientée vers les applications réseau qui doivent pouvoir monter en charge. Elle utilise la machine virtuelle V8 et implémente sous licence MIT les spécifications CommonJS. Node.js contient une bibliothèque de serveur HTTP intégrée, ce qui rend possible de faire tourner un serveur web sans avoir besoin d'un logiciel externe comme Apache ou lighttpd, et permettant de mieux contrôler la façon dont le serveur web fonctionne.

Node.js est de plus en plus populaire comme plateforme serveur[1], elle est utilisée par Groupon[2], SAP[3], LinkedIn[4],[5], Microsoft[6],[7], Yahoo![8], Walmart[9], Rakuten et PayPal[10],[11].

Historique[modifier | modifier le code]

Ryan Dahl, créateur de Node.js

Node.js a été créé par Ryan Lienhart Dahl en 2009. Son développement et sa maintenance sont effectués par l'entreprise Joyent (en)[12]. Dahl a eu l'idée de créer Node.js après avoir observé la barre de progression d'un chargement de fichier sous Flickr : le navigateur ne savait pas quel pourcentage du fichier était chargé et devait adresser une requête au serveur web. Dahl voulait développer une méthode plus simple[13]. Le serveur web Mongrel de Ruby a été l'autre source d'inspiration pour Dahl[14]. Dahl avait échoué dans plusieurs projets en C, Lua et Haskell, mais, quand le moteur V8 fut diffusé, il commença à s'intéresser à JavaScript[15]. Même si son idée d'origine était d'utiliser des entrées et sorties non bloquantes, il en reviendra un peu dans son module système car cela provoquait des problèmes de chargement de bibliothèques externes[16].

Node.js est utilisé au cœur du système d'exploitation Palm webOS[17].

Exemple[modifier | modifier le code]

Voici un exemple d'implémentation du programme Hello World sous forme de serveur web :

var http = require('http');

var server = http.createServer(function(request, response){
    response.writeHead(200, {'Content-Type': 'text/plain'});
    response.end('Hello World\n');
});

server.listen(3000);

console.log('Adresse du serveur: http://localhost:3000');

Trois points transparaissent dans ce code :

  • un chargeur de module (require)
  • la présence native d'une bibliothèque HTTP.
  • l'aspect asynchrone du langage.

Frameworks pour Node.js[modifier | modifier le code]

Outils pour Node.js[modifier | modifier le code]

  • nCombo : framework pour le cloud
  • TestCafé[18]
  • Browserify : outil pour utiliser les modules Node.js dans le navigateur
  • Babel
  • Mongoose : couche de persistance pour MongoDB
  • Grunt[19] : outil d'automatisation des tâches
  • Gulp[20] : outil d'automatisation des tâches (basé sur les streams)
  • Bower[21] : gestionnaire de paquet pour le web
  • Yeoman[22] : générateur de site web utilisant Grunt et Bower
  • Unit.js : framework pour l'écriture des tests unitaires
  • Mocha[23] : runner pour exécuter les tests unitaires
  • Jasmine : framework pour l'écriture des tests unitaires

Références[modifier | modifier le code]

  1. Industry Usage, Node.js Website
  2. Adam Geitgey, « I-Tier: Dismantling the Monoliths », Groupon,‎ (consulté le 30 avril 2014)
  3. « SAP AppBuilder », SAP,‎ (consulté le 10 mars 2014)
  4. « You'll never believe how LinkedIn built its new iPad app », VentureBeat,‎ (consulté le 10 mai 2012)
  5. « Blazing fast node.js: 10 performance tips from LinkedIn Mobile » (consulté le 2 août 2014)
  6. « Here's why you should be happy that Microsoft is embracing Node.js », The Guardian,‎ (consulté le 10 mai 2012)
  7. « WebMatrix - Front End Web Developers take note (ASP.NET, PHP, node.js and more) » (consulté le 2 août 2014)
  8. « Yahoo! Announces Cocktails Shaken, Not Stirred »,‎ (consulté le 10 mai 2015)
  9. « Why Walmart is using Node.js », VentureBeat,‎ (consulté le 10 mai 2012)
  10. « Clash of the Titans: Releasing the Kraken, NodeJS @paypal », fluentconf.com,‎ (consulté le 11 septembre 2013)
  11. « All such companies and their products in which Node.js is used » (consulté le 2 août 2014)
  12. Site officiel
  13. (en) Amber Harris, « The Birth of Node: Where Did it Come From? Creator Ryan Dahl Shares the History », Devops Angle,‎ (consulté le 21 janvier 2014)
  14. (en) Dio Synodinos, « Deep inside Node.js with Ryan Dahl », InfoQ,‎ (consulté le 21 janvier 2014)
  15. (en) Kevin McCarthy, « Node.js Interview: 4 Questions with Creator Ryan Dahl », Streetwise Media,‎ (consulté le 21 janvier 2014)
  16. (en) Oleg Podsechin, « Ryan Dahl Interview: Part 1 », DailyJS,‎ (consulté le 21 janvier 2014)
  17. Guénaël Pépin, « Les nouveautés de webOS 2.0 se dévoilent », businessMOBILE.fr,‎
  18. Site de TestCafé
  19. Site de Grunt
  20. Site de Gulp
  21. Site de Bower
  22. Site de Yeoman
  23. Site de « Mocha » (ArchiveWikiwixArchive.isGoogleQue faire ?), consulté le 2015-01-20

Annexes[modifier | modifier le code]

Sur les autres projets Wikimedia :

Articles connexes[modifier | modifier le code]

Liens externes[modifier | modifier le code]