Node.js

server-side JavaScript-plattform

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.

Node.js
Utvikler(e)OpenJS Foundation, Ryan Dahl
Utgitt 27. mai 2009[1]
Nyeste versjon21.7.1 (8. mars 2024)[2]
Kodelagerhttps://github.com/nodejs/node
OperativsystemLinux Microsoft Windows BSD macOS Unix-liknende AIX Android iOS
Skrevet iC,[3] C++, JavaScript
TypeWebutvikling,[4] kjøremiljø
LisensMIT-lisensen[5]
Nettstednodejs.org (en)[6]
nodejs.org (fr)

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 rediger

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.[7]

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å.[8][9]

Støttede operativsystemer og datamaskinarkitekturer rediger

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.[10] Tredjeparts-pakkebehandlere tilbyr også Node.js for andre operativsystemer, for eksempel FreeBSD og NetBSD.[11]

Versjoner rediger

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

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.[13]

Pakkebehandlerne npm og Yarn rediger

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.[14][15]

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.[16]

Referanser rediger

  1. ^ «node-v0.x-archive on GitHub». 
  2. ^ «Release 21.7.1». 8. mars 2024. Besøkt 22. mars 2024. 
  3. ^ «The node Open Source Project on Open Hub: Languages Page». Open Hub. Besøkt 18. oktober 2018. 
  4. ^ https://hackernoon.com/node-js-emerging-as-the-universal-development-framework-for-a-diversity-of-applications-c2e788290f5f.
  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 rediger