En stor del av Node.js' basismoduler er skrevet i JavaScript, mens andre Node.js-moduler er skrevet iC ogC++. Programmet utvikles av Node.js Foundation, et samarbeidsprosjekt vedLinux Foundation.
Node.js' hovedbruksområde er utvikling avserver-programvare som erI/O-intensiv, der hastighet og skalerbarhet er viktige ikke-funksjonelle krav. Node.js løser dette gjennom enasynkron modell, der hele programmet kjører i én enkelttråd. Når en I/O-operasjon tar lang tid (for eksempel fordi den skal oppdatere endatabase) venter ikke Node.js på at operasjonen skal fullføre, men går bare videre til å eksekvere neste kodelinje. Når I/O-operasjonen returnerer utløser den en callback-funksjon som så kan prosessere resultatet.[9]
Node.js er en JavaScript-platform – en måte å kjøre JavaScript-programmer på. Node.js-rammeverket er imidlertid relativt «tynt» i seg selv, og det å skrive for eksempel enHTTP-server fra bunnen av i Node.js kan være unødvendig komplekst og tidkrevende. For ikke-trivielle applikasjoner bruker man derfor vanligvis ett eller flere andre JavaScript-rammeverk på topp av Node.js; for HTTP-servere brukes for eksempel vanligvisExpress.js. For komplette web-applikasjoner bruker man gjerneMEAN-stacken:MongoDB, Express.js,AngularJS og Node.js. Felles for alle disse er at de er basert på JavaScript, noe som fører med seg at programvareutviklere kun trenger å forholde seg til ettprogrammeringsspråk når de utvikler en applikasjon, uansett hvilken komponent de jobber på.[10][11]
Støttede operativsystemer og datamaskinarkitekturer
Programmet ble lansert 27. mai 2007, og pr. januar 2019 er siste versjon 11.6.0.[14]
Med versjon 4.0.0 i september 2015 gjorde Node.js et større hopp i versjoneringen, fra 0.12. Grunnen var sammenslåingen medio.js, en Node.js-fork med utspring i et miljø som var misfornøyde med de daværende Node.js-forvalterne i selskapetJoyent. Da de to gruppene kom til enighet og slo sammen io.js og Node.js i 2015 bestemte de seg for å fortsette med io.js' versjoneringsregime, og den neste Node.js-utgaven fikk derfor betegnelsen 4.0.0.[15]
Node.js'pakkebehandler heternpm, og denne installeres automatisk sammen med Node.js. npm brukes til å holde orden på hvilke moduler og modul-versjoner et Node.js-program er avhengig av, og assisterer programvareutvikleren ogsystemoperatøren med å sørge for at samme modulversjoner kjøres under utvikling og i vanlig drift. Ved utgangen av 2014 var detca. 115 000 pakker tilgjengelig i det offisielle npm-arkivet.[16][17]
Facebook lanserte i 2016Yarn, som er en alternativ pakkebehandler til npm. Yarn er kompatibel med alle npm-pakker, men har enkelte endringer i arbeidsflyten for hvordan den installerer og holder rede på hvilke pakker som er installert.[18]
^Nguyen, Don (2012).Jump Start Node.js. SitePoint.ISBN978-0-9873321-0-3. [kapittel 1 i ebok uten sideangivelse]
^Brown, Ethan (2014).Web Development with Node and Express. O'Reilly Media.ISBN978-1-4919-4930-6. [kapittel 1 i ebok uten sideangivelse]
^Hahn, Evan M. (2016).Express in Action: Writing, building, and testing Node.js applications. Manning Publications.ISBN978-1-61729-242-2. [kapittel 1 i ebok uten sideangivelse]
^«Downloads». Node.js Foundation. 2016. Besøkt 10. januar 2019.