**Node.js** er et åpent kryssplattform runtime-system for server- og nettverksapplikasjoner. Node.js eksekverer JavaScript-kode ved hjelp av Google V8-motoren, slik at JavaScript-programmer kan kjøre på servere.

En stor del av Node.js' basismoduler er skrevet i JavaScript, mens andre Node.js-moduler er skrevet i C og C++. Programmet utvikles av Node.js Foundation, et samarbeidsprosjekt ved Linux Foundation.

Bruksområder og Node.js-arkitekturen
------------------------------------

Node.js' hovedbruksområde er utvikling av server-programvare som er I/O-intensiv, der hastighet og skalerbarhet er viktige ikke-funksjonelle krav. Node.js løser dette gjennom en asynkron modell, der hele programmet kjører i én enkelt tråd. Når en I/O-operasjon tar lang tid (for eksempel fordi den skal oppdatere en database) 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.

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 en HTTP-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 vanligvis Express.js. For komplette web-applikasjoner bruker man gjerne MEAN-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 ett programmeringsspråk når de utvikler en applikasjon, uansett hvilken komponent de jobber på.

Støttede operativsystemer og datamaskinarkitekturer
---------------------------------------------------

Pr. versjon 10.15.0 LTS (januar 2019) publiserer Node.js Foundation pakker for OS X, Microsoft Windows og Linux. For sistnevnte finnes Node.js både for x86-arkitekturen, ARM, PowerPC og Linux on System z. Det finnes også en versjon for SunOs, og offisielle Docker-images for Node.js. Tredjeparts-pakkebehandlere tilbyr også Node.js for andre operativsystemer, for eksempel FreeBSD og NetBSD.

Versjoner
---------

Programmet ble lansert 27. mai 2007, og pr. januar 2019 er siste versjon 11.6.0.

Med versjon 4.0.0 i september 2015 gjorde Node.js et større hopp i versjoneringen, fra 0.12. Grunnen var sammenslåingen med io.js, en Node.js-fork med utspring i et miljø som var misfornøyde med de daværende Node.js-forvalterne i selskapet Joyent. 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.

Pakkebehandlerne npm og Yarn
----------------------------

Node.js' pakkebehandler heter npm, 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 og systemoperatøren med å sørge for at samme modulversjoner kjøres under utvikling og i vanlig drift. Ved utgangen av 2014 var det ca. 115 000 pakker tilgjengelig i det offisielle npm-arkivet.

Facebook lanserte i 2016 Yarn, 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.

Referanser
----------

1. ↑  «node-v0.x-archive on GitHub».
2. ↑  «Release 21.6.1». 22. januar 2024. Besøkt 1. februar 2024.
3. ↑  «The node Open Source Project on Open Hub: Languages Page». *Open Hub*. Besøkt 18. oktober 2018.
4. ↑  .
5. ↑  «node/LICENSE at master · nodejs/node · GitHub». Besøkt 27. november 2020.
6. ↑   api.github.com, besøkt 8. januar 2017[Hentet fra Wikidata]
7. ↑  Nguyen, Don (2012). *Jump Start Node.js*. SitePoint. ISBN 978-0-9873321-0-3.  [kapittel 1 i ebok uten sideangivelse]
8. ↑  Brown, Ethan (2014). *Web Development with Node and Express*. O'Reilly Media. ISBN 978-1-4919-4930-6.  [kapittel 1 i ebok uten sideangivelse]
9. ↑  Hahn, Evan M. (2016). *Express in Action: Writing, building, and testing Node.js applications*. Manning Publications. ISBN 978-1-61729-242-2.  [kapittel 1 i ebok uten sideangivelse]
10. ↑  «Downloads». Node.js Foundation. 2016. Besøkt 10. januar 2019.
11. ↑  «Installing Node.js via package manager». Node.js Foundation. 2016. Besøkt 31. mai 2016.
12. ↑  «Previous Releases». nodejs.org. Besøkt 10. januar 2019.
13. ↑  «Node.js says all is forgiven, welcomes io.js fork back into the fold». The Register. 9. september 2015. Besøkt 30. mai 2016.
14. ↑  «npm’s year in numbers: 2014». npmjs.org. 31. desember 2014. Besøkt 30. mai 2016.
15. ↑  Ihrig, Colin J. (2014). *Pro Node.js for Developers*. Apress. s. 9-10. ISBN 978-1-4302-5860-5.
16. ↑  «Yarn: A new package manager for JavaScript». Facebook. 11. oktober 2016. Besøkt 10. januar 2019.

Eksterne lenker
---------------

* (en) Offisielt nettsted Rediger på Wikidata

* (en) Node.js – kategori av bilder, video eller lyd på Commons Rediger på Wikidata
* Node.js på Twitter Rediger på Wikidata

* Node.js på YouTube Rediger på Wikidata

* Node.js på Mastodon Rediger på Wikidata

* (en) Node.js på GitHub Rediger på Wikidata

| * v
* d
* r
Webrammeverk |
| --- |
| .NET | 
* ASP.NET
	+ Core
	+ AJAX
	+ Dynamic Data
	+ MVC
	+ Razor
	+ Web Forms
* Blazor
* DNN
* BFC
* MonoRail
* Umbraco
* WebSharper

 |
| C++ | 
* CppCMS
* Drogon
* Wt

 |
| ColdFusion | 
* ColdBox Platform
* ColdSpring
* Fusebox
* Model-Glue

 |
| Common Lisp | 
* CL-HTTP

 |
| Haskell | 
* Yesod
* Snap

 |
| Java | 
* AppFuse
* GrailsGrails
* GWT
* ICEfaces
* JHipster
* JWt
* Play
* Remote Application Platform
* Seam
* Sling
* Spring
* Stripes
* Struts
* Tapestry
* Vaadin
* Vert.x
* Wicket
* WaveMaker
* ZK

 |
| JavaScript | 
* Angular/AngularJS
* Backbone.js
* Closure
* Dojo Toolkit
* Ember.js
* Express.js
* Ext JS
* jQuery
* Knockout.js
* Meteor
* MooTools
* Node.js
* OpenUI5
* Prototype
* React
* Sencha Touch
* SproutCore
* Svelte
* Vue.js
* Wakanda

 |
| Perl | 
* Catalyst
* Dancer
* Mojolicious
* WebGUI

 |
| PHP | 
* CakePHP
* CodeIgniter
* Drupal
* Fat-Free
* FuelPHP
* Flow
* Grav
* Gyroscope
* Horde
* Joomla!
* Laminas
* Laravel
* Li3
* Midgard
* MODX
* Nette
* Phalcon
* PHP-Fusion
* Pop PHP
* PRADO
* ProcessWire
* Qcodo
* Silex
* SilverStripe
* Symfony
* TYPO3
* WordPress
* XOOPS
* Yii

 |
| Python | 
* BlueBream
* CherryPy
* CubicWeb
* Django
* FastAPI
* Flask
* Grok
* Jinja
* Nevow
* Pyjs
* Pylons Framework
* Pyramid
* Quixote
* TACTIC
* Tornado
* TurboGears
* web2py
* Zope 2

 |
| Ruby | 
* Camping
* Merb
* Padrino
* Ruby on Rails
* Sinatra

 |
| Rust | 
* Rocket

 |
| Scala | 
* Lift
* Play
* Scalatra

 |
| Smalltalk | 
* AIDA/Web
* Seaside

 |
| Other languages | 
* Application Express (PL/SQL)
* Grails (Groovy)
* OpenACS (Tcl)
* Phoenix (Elixir)
* SproutCore (JavaScript-Ruby)
* Yaws (Erlang)

 |


|  |  |
| --- | --- |
| Oppslagsverk/autoritetsdata | GND **·** LCCN **·** NKC
 |