close
Hoppa till innehållet

Node.js

Från Wikipedia
Node.js
Node.js logo.svg
OriginalförfattareRyan Dahl
UtvecklareOpenJS Foundation
Först släppt27 maj 2009
Senaste utgåva26.2.0
(20 maj 2026; för 11 dagar sedan (2026-05-20))
Skriven iC, C++, JavaScript
MotorV8
UtvecklingsstatusAktiv
OperativsystemPlattformsoberoende (Linux, MacOS, Windows)
TypExekveringsmiljö (Runtime environment)
LicensMIT-licens
Webbplatsnodejs.org

Node.js (ofta kallat enbart Node) är en plattformsoberoende exekveringsmiljö (runtime environment) med öppen källkod som gör det möjligt att exekvera JavaScript-kod utanför en webbläsare. Plattformen används primärt inom mjukvaruutveckling för att bygga skalbara nätverksapplikationer och serverlösningar (backend). Node.js är byggt ovanpå Googles snabba JavaScript-motor V8, vilken ursprungligen utvecklades för webbläsaren Google Chrome.

Node.js skapades av den amerikanske mjukvaruutvecklaren Ryan Dahl år 2009. Vid tidpunkten var Dahl frustrerad över hur dåtidens populära webbservrar, såsom Apache HTTP Server, hanterade stora mängder samtidiga anslutningar. De traditionella systemen skapade en ny exekveringstråd (thread) för varje ny anslutning, vilket krävde mycket arbetsminne och gjorde det svårt att skala upp applikationer (det så kallade C10k-problemet). Dahl demonstrerade den första versionen av Node.js på den europeiska utvecklarkonferensen JSConf EU i november 2009, där plattformen snabbt rönte stor uppmärksamhet.

Projektet sponsrades inledningsvis av det amerikanska molnföretaget Joyent. År 2015 överfördes ansvaret för plattformens utveckling och underhåll till den oberoende stiftelsen Node.js Foundation (som numera är en del av OpenJS Foundation).

Arkitektur och teknik

[redigera | redigera wikitext]

Till skillnad från traditionella serverplattformar som använder flera trådar för att hantera förfrågningar, opererar Node.js i en enda huvudtråd (single-threaded). Detta möjliggörs genom en specifik arkitektur som kallas för en händelseloop (Event Loop).

  • Asynkron och händelsestyrd I/O: Nästan alla operationer i Node.js är icke-blockerande (non-blocking). Om applikationen behöver utföra en tidskrävande uppgift, till exempel att läsa en fil från en hårddisk eller hämta data från en databas, stannar inte programmet upp och väntar på resultatet. I stället registreras en återuppringningsfunktion (callback) och Node.js går vidare till att hantera nästa förfrågan. När uppgiften är klar skickas resultatet tillbaka till händelseloopen. Detta gör systemet extremt resurseffektivt och väl lämpat för applikationer som kräver intensiv dataöverföring i realtid (exempelvis chattprogram eller streamingtjänster).[1][2]

npm (Node Package Manager)

[redigera | redigera wikitext]

År 2010 introducerades npm (Node Package Manager), pakethanteraren för Node.js. npm gör det möjligt för utvecklare att dela, uppdatera och återanvända färdigskriven kod (paket) från andra utvecklare. npm har vuxit till att bli det största mjukvaruregistret i världen, med miljontals tillgängliga paket, och är en central anledning till plattformens utbredda popularitet.

  1. Finley, Klint (25 januari 2011). ”Wait, What's Node.js Good for Again?” (på engelska). ReadWriteHack. Arkiverad från originalet den 14 oktober 2012. https://web.archive.org/web/20121014151716/http://www.readwriteweb.com/hack/2011/01/wait-whats-nodejs-good-for-aga.php. Läst 4 april 2026.
  2. Metz, Cade (1 mars 2011). ”The Node Ahead: JavaScript leaps from browser into future” (på engelska). The Register. https://www.theregister.co.uk/2011/03/01/the_rise_and_rise_of_node_dot_js/. Läst 4 april 2026.

Externa länkar

[redigera | redigera wikitext]