Vous êtes sur la page 1sur 4

Node.

js
Node.js est une plateforme logicielle libre et événementielle en JavaScript
orientée vers les applications réseau qui doivent pouvoir monter en Node.js
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. Développeur Ryan Lienhart Dahl et les
développeurs de Node.js
Concrètement, Node.js est un environnement d'assez bas niveau
Première
permettant d'exécuter du JavaScript non plus dans le navigateur web mais 27 mai 20091
version
sur le serveur.
Dernière 8.9.0 (LTS)
6 version (31 octobre 2017) 2
Node.js est de plus en plus populaire comme plateforme serveur , elle est 9.3.0 (12 décembre 2017,
7 8 9, 10 11, 12 13
utilisée par Groupon , SAP , LinkedIn , Microsoft , Yahoo! , 19 décembre 2017) 3, 4
14 15, 16
Walmart , Rakuten, Sage et PayPal . Écrit en C++, JavaScript et C
Environnement MacOS, GNU/Linux,
Solaris, FreeBSD,
OpenBSD, webOS et
Sommaire Microsoft Windows
Type Event-driven programming
Historique language (d)
Forks
Licence Licence X11 (d) 5
Exemple
Site web nodejs.org
Frameworks pour Node.js
Outils pour Node.js
Références
Annexes
Articles connexes
Liens externes

Historique
17
Node.js a été créé par Ryan Dahl en 2009. Son développement et sa maintenance sont effectués par l'entreprise Joyent (en) . Dahl
a eu l'idée de créer Node.js après avoir observé labarre 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
18 19
simple . Le serveur web Mongrel de Ruby a été l'autre source d'inspiration pour Dahl . Dahl avait échoué dans plusieurs projets en
20
C, Lua et Haskell, mais, quand le moteur V8 fut diffusé, il commença à s'intéresser à JavaScript . 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
21
chargement de bibliothèques externes .

22
22
Node.js est utilisé au cœur du système d'exploitationPalm webOS .

Forks
Fin 2014, en désaccord avec le rôle de l'entreprise Joyent, plusieurs des
développeurs principaux de node.js décident de forker celui-ci et crée alors io.js. Un
23
an plus tard, ils décident de fusionner à nouveau avec node.js .

En août 2017, node.js est à nouveau forké et plusieurs contributeurs créent alors
24, 25
ayo.js

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

const { createServer } = require ('http' );

const server = createServer ((request , response ) => { Ryan Dahl, créateur de Node.js.
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


Express Mean.js et Mean.io
kraken.js Mojito
Hapi.js Feathers
Koa.js Keystone
TotalJS Knockout.js
Locomotive SocketStream
TWEE.IO seneca.js
Flatiron Catberry
diet.js AllcountJS.
SailsJS Flatiron
Nodal Connect
Adonis Socket.IO
Trails Noda
Strapi RESTify
RhapsodyJS Frisby
Compound.js Partial.js
ThinkJS Raddish
Geddy Fortune.js
Meteor percolator
DerbyJS Ionic
GeddyJS Devisjs (en)
TowerJS
Outils pour Node.js
nCombo : framework pour le cloud
26
TestCafé
Browserify : outil pour utiliser les modules Node.js dans le navigateur
Babel
Mongoose : couche de persistance pourMongoDB
Grunt : outil d'automatisation des tâches
PM2 : outil de surveillance et d'automatisation de taches en cas de crash d'une application Node JS
memwatch-next : un paquet fournit par Node Package Manager (npm) pour la surveillance de l'utilisation de
mémoire. Utile pour détecter les fuites de mémoires lentes.
Gulp (en) : outil d'automatisation des tâches (basé sur les streams)
27
Bower : gestionnaire de paquet pour le web
Yeoman : générateur de site web utilisant Grunt et Bower
Unit.js : framework pour l'écriture destests unitaires
Mocha (en) : runner pour exécuter les tests unitaires
Jasmine (en) : tests unitaires

Références
1. « node-v0.x-archive on GitHub» (https://github.com/nodejs/node-v0.x-archive/tags?after=v0.0.4)
2. https://nodejs.org/en/blog/release/v8.9.0/
3. https://nodejs.org/en/blog/release/v9.3.0/
4. https://api.github.com/repos/nodejs/node/releases
5. https://github.com/nodejs/node/blob/master/LICENSE
6. Industry Usage (http://nodejs.org/industry/), Node.js Website
7. Adam Geitgey, « I-Tier: Dismantling the Monoliths» (https://engineering.groupon.com/2013/misc/i-tier-dismantling-th
e-monoliths/), Groupon, 30 octobre 2013 (consulté le 30 avril 2014)
8. « SAP AppBuilder » (http://help.sap.com/appbuilder), SAP, 10 mars 2014 (consulté le 10 mars 2014)
9. « You'll never believe how LinkedIn built its newiPad app » (https://venturebeat.com/2012/05/02/linkedin-ipad-app-en
gineering/), VentureBeat, 2 mai 2012 (consulté le 10 mai 2012)
10. « Blazing fast node.js: 10 performance tips from LinkedIn Mobile» (http://engineering.linkedin.com/nodejs/blazing-fas
t-nodejs-10-performance-tips-linkedin-mobile)(consulté le 2 août 2014)
11. « Here's why you should be happy that Microsoft is embracing Node.js» (http://www.guardian.co.uk/technology/blog/
2011/nov/09/programming-microsoft), The Guardian, 9 novembre 2011 (consulté le 10 mai 2012)
12. « WebMatrix - Front End Web Developers take note (ASP.NET, PHP, node.js and more) » (http://www.hanselman.co
m/blog/WebMatrix2FrontEndWebDevelopersTakeNoteASPNETPHPNodejsAndMore.aspx)(consulté le 2 août 2014)
13. « Yahoo! Announces Cocktails Shaken, Not Stirred » (https://developer.yahoo.com/blogs/ydn/yahoo-announces-cock
tails-shaken-not-stirred-51439.html), 2 novembre 2011 (consulté le 10 mai 2015).
14. « Why Walmart is using Node.js» (https://venturebeat.com/2012/01/24/why-walmart-is-using-node-js/) , VentureBeat,
24 janvier 2012 (consulté le 10 mai 2012)
15. « Clash of the Titans: Releasing the Kraken, NodeJS @paypal » (https://www.youtube.com/watch?v=tZWGb0HU2Q
M), fluentconf.com, 28 mai 2013 (consulté le 11 septembre 2013)
16. « All such companies and their products in which Node.js is used» (https://github.com/joyent/node/wiki/Projects,-App
lications,-and-Companies-Using-Node)(consulté le 2 août 2014).
17. Site officiel (http://www.joyent.com)
18. (en) Amber Harris, « The Birth of Node: Where Did it Come From? Creator Ryan Dahl Shares the History » (http://de
vopsangle.com/2013/04/01/the-birth-of-node-where-did-it-come-from-creator-ryan-dahl-shares-the-history/) , Devops
Angle, 1er avril 2012 (consulté le 21 janvier 2014)
19. (en) Dio Synodinos, « Deep inside Node.js with Ryan Dahl» (http://www.infoq.com/interviews/node-ryan-dahl),
InfoQ, 13 décembre 2010 (consulté le 21 janvier 2014)
20. (en) Kevin McCarthy, « Node.js Interview: 4 Questions with Creator Ryan Dahl» (http://bostinno.streetwise.co/2011/
01/31/node-js-interview-4-questions-with-creator-ryan-dahl/) , Streetwise Media, 31 janvier 2011 (consulté le
21 janvier 2014)
21. (en) Oleg Podsechin, « Ryan Dahl Interview: Part 1» (http://dailyjs.com/2010/08/10/ryan-dahl-interview/) , DailyJS,
10 août 2010 (consulté le 21 janvier 2014)
22. Guénaël Pépin, « Les nouveautés de webOS 2.0 se dévoilent» (http://www.businessmobile.fr/actualites/les-nouveaut
es-de-webos-20-se-devoilent-39754236.htm), businessMOBILE.fr, 1er septembre 2010
23. https://iojs.org/fr
24. https://github.com/ayojs/ayo
25. « Node.js n’en finit pas de forker», Silicon, 25 août 2017 (lire en ligne (http://www.silicon.fr/node-js-nen-finit-pas-de-f
orker-182681.html))
26. Site de TestCafé (http://testcafe.devexpress.com/)
27. Site de Bower (http://bower.io)
1

Annexes

Articles connexes Sur les autres projets Wikimedia :

Node.js, sur Wikimedia Commons


npm, gestionnaire de paquetutilisé pour Node.js.
Twisted, un framework pour application réseau en
Python
Vert.x, un framework événementiel pour laJVM.

Liens externes
(en) Site officiel

1. (en) « Node.js dans SAP HANA» (https://blogs.sap.com/2015/12/08/sap-hana-sps-11-new-developer-features-node


js/), 8 décembre 2015.

Ce document provient de «https://fr.wikipedia.org/w/index.php?title=Node.js&oldid=143688902 ».

La dernière modification de cette page a été faite le 20 décembre 2017 à 05:30.

Droit d'auteur : les textes sont disponibles souslicence Creative Commons attribution, partage dans les mêmes
conditions ; d’autres conditions peuvent s’appliquer . Voyez les conditions d’utilisation pour plus de détails, ainsi que les
crédits graphiques. En cas de réutilisation des textes de cette page, voyezcomment citer les auteurs et mentionner la
licence.
Wikipedia® est une marque déposée de laWikimedia Foundation, Inc., organisation de bienfaisance régie par le
paragraphe 501(c)(3) du code fiscal des États-Unis.

Vous aimerez peut-être aussi