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!
Nalle Rooth
says:För att skrämma liv i den här diskussionen igen; planerar ni stöd för node.js i era vanliga webhotellkonton också i framtiden?
sulo
says:Inte i dagsläget. Efterfrågan på Node.js är, dessvärre, väldigt låg. Men om efterfrågan ökar så kommer vi givetvis att se över detta.
Mikael Hellqvist
says:Jag skulle vilja upprepa den tre år gamla frågan ovan. node.js på vanliga webbhotellskontot?
sulo
says:Efterfrågan är fortfarande för låg för att vi ska kunna erbjuda node.js i våra webbhotellspaket, tyvärr. Det kräver en rätt omfattande anpassning och det är tid vi behöver lägga på desto mer angelägna uppgifter och tjänster.
Alexander Kjær
says:Twitter Bootstrap [http://twitter.github.com/bootstrap/index.html] er definitivt ett interessant prosjekt, som kan kombineres med Node.js.
Apache har nok utspilt mye av sin rolle, men lever godt enda grunnet alle moduler og integrering opp mot andre systemer (cPanel, Plesk – u name it). Event-baserte webservere er framtiden.
Andre webservere som er verdt å nevne er f.eks. Nginx (www.nginx.org) og G-WAN (www.gwan.com).
matjac
says:Hos mok.nu lanserar vi snart(1 dec) en ny hemsida byggd på @nodejs hos @fsdata
Andreas Wedberg
says:Låter intressant. Nästa bloggpost heter då ”Så anpassar du din webbapplikation för Node.js”?
sulo
says:Ja, om intresse finns för detta så kan vi nog snickra ihop ett sådant inlägg. 🙂