Ces listes gagneraient à être rédigées sous la forme de paragraphes synthétiques, plus agréables à la lecture, les listes pouvant être aussi introduites par une partie rédigée et sourcée, de façon à bien resituer les différents items. D'autre part,Wikipédia n'a pas pour rôle de constituer une base de données et privilégie uncontenu encyclopédique plutôt que la recherche de l'exhaustivité.
Parmi les modules natifs de Node.js, on retrouvehttp qui permet le développement deserveur HTTP etHTTPS. Ce qui autorise, lors du déploiement de sites internet et d'applications web développés avec Node.js, de ne pas installer et utiliser desserveurs webs tels queNginx ouApache.
Concrètement, Node.js est un environnement bas niveau permettant l'exécution deJavaScript côté serveur.
Node.js a été créé par Ryan Dahl en 2009.Son développement et sa maintenance sont effectués par l'entreprise Joyent.Dahl a eu l'idée de créerNode.js après avoir observé labarre de progression d'un chargement de fichier sousFlickr : 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[12].Leserveur web Mongrel deRuby a été l'autre source d'inspiration pour Dahl[13].Dahl avait échoué dans plusieurs projets enC,Lua etHaskell, mais, quandlemoteur V8 fut diffusé, il commença à s'intéresser à JavaScript[14].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[15].
Il est à noter que Node.js estaujourd'hui[Quand ?] relativement facile à installer sur la plupart des distributionsGNU/Linux grand public[16].
Fin 2014, en désaccord avec le rôle de l'entreprise Joyent, plusieurs des développeurs principaux de Node.js décident deforker celui-ci et créent alors io.js.
Un an plus tard, fin 2015, ils décident de fusionner à nouveau avec Node.js[18].
En, Node.js est à nouveau forké et plusieurs contributeurs créent alors ayo.js[19].
Voici un exemple d'implémentation du programmeHello World sous forme de serveur web :
const{createServer}=require('http');//Creation du serveurconstserver=createServer((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'));
Cecode laisse transparaître deux notions importantes de Node.js.
Tout d'abord, la plateforme dispose d'un chargeur demodules via la fonctionrequire, dont l'un d'eux est la bibliothèque native HTTP permettant de démarrer un serveur HTTP pour recevoir des requêtes et générer des réponses.
Ensuite, elle permet de traiter du code JavaScriptasynchrone.
PM2 : outil de surveillance et d'automatisation de tâches en cas de crash d'une application Node.js
memwatch-next : un paquet fourni par Node Package Manager (npm) pour la surveillance de l'utilisation demémoire. Utile pour détecter les fuites de mémoires lentes.
Gulp : outil d'automatisation des tâches (basé sur lesstreams)
Node.js est utilisé pour faire des applicationsmultiplateforme avec des framework commeIonic pour les applications mobiles ou encoreElectron pour les applications de bureau.
Des géants, commeDiscord ou encoreSlack, utilisent ce système.
Node.js est aussi beaucoup utilisé pour faire des serveurs debot informatique ou bien des serveurs web.