Node.js är en serverbaserad lösning som är avsedd att hantera skalbara och väldigt snabba webbapplikationer. En webbapplikation är, väldigt enkelt uttryckt, en smartare/mer funktionell hemsida. Node.js är avsedd för snabba, skalbara och minnessnåla webbapplikationer.
När man hanterar en webbapplikation med en traditionell webbserver, såsom Apache, så sker interaktionen mellan användarna och applikationen via ”trådar” (thread-based). Användaren ansluter till applikationen och får en köplats på webbservern, som hanteras enligt principen ”först till kvarn”. Om applikationen är väldigt populär (om det är mycket trafik till hemsidan) så kan långa laddningstider uppstå.
Om man istället använder Node.js för att hantera en webbapplikation så sker interaktionen mellan användarna och applikationen via ”händelser” (event-based). Användaren ansluter till applikationen, vilket skapar en händelse (t ex leverans av en sida). Node.js fortsätter sedan att hantera denna anslutning asynkront med övriga anslutningar, så att en kö aldrig behöver uppstå.
Man kan säga att Node.js är serversidans motsvarighet till AJAX på klientsidan.
Rätt så smart va? 🙂
Nackdelen med Node.js, det är att webbapplikationerna behöver anpassas för att kunna hantera dessa ”händelser”. Det är t ex inte möjligt att bara köra igång med en vanlig WordPress-sida i Node.js. Det krävs helt enkelt lite mer intelligens i webbapplikationen.
Om man vill komma igång och börja testa Node.js så är det faktiskt rätt så enkelt. Det enda som krävs är att man har tillgång till en egen server eller VPS. Här följer en liten guide till hur man installerar Node.js. Ett stort tack till vår kund Peter Olsson på PK Data för detta!
Installera Node.js på en Linux (CentOS) VPS hos FS Data:
- Logga in som root eller kör su -. Kör nedanstående från /root eller valfri mapp.
- Installera paket som behövs:
yum groupinstall ’Development Tools’
yum install openssl-devel - Hämta Python 2.7.3 (2.6 eller 2.7 krävs). Det finns inget paket så:
wget http://python.org/ftp/python/2.7.3/Python-2.7.3.tgz
tar -zxvf Python-2.7.3.tgz
cd Python-2.7.3
./configure && make && make install
cd .. - Det finns sedan maj inte längre något uppdaterat paket till CentOS. Kolla senaste version av Node på http://nodejs.org/download/ och kör:
wget http://nodejs.org/dist/v0.8.14/node-v0.8.14.tar.gz
tar -zxvf node-v0.8.14.tar.gz
cd node-v0.8.14
./configure && make && make install
cd .. - Installera NPM:
curl https://npmjs.org/install.sh | sh
- Skapa filen /var/node/test.js med följande innehåll:
var sys = require(”sys”),
http = require(”http”);http.createServer(function (request, response) {
response.writeHead(200, {”Content-Type”: ”text/plain”});
response.end(”Hello World”);
}).listen(8000);sys.puts(”Server running at 127.0.0.1:8000”);
- Provkör med curl eller lynx:
node test.js &
curl 127.0.0.1:8000
lynx 127.0.0.1:8000 - Stäng servern med kommandot ”fg” följt av CTRL-C
Om man sedan vill köra Node.js i skarpt läge, för produktion, så bör man komplettera detta med t ex upstart. Vi kan även rekommendera forever och monit (för övervakning av applikationer).
Så installera på nu och lämna gärna en länk till era Node.js-applikationer som en kommentar till detta inlägg!