Så kommer du igång med Node.js

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:

  1. Logga in som root eller kör su -. Kör nedanstående från /root eller valfri mapp.
  2. Installera paket som behövs:

    yum groupinstall ‘Development Tools’
    yum install openssl-devel

  3. 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 ..

  4. 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 ..

  5. Installera NPM:

    curl https://npmjs.org/install.sh | sh

  6. 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”);

  7. Provkör med curl eller lynx:

    node test.js &
    curl 127.0.0.1:8000
    lynx 127.0.0.1:8000

  8. 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!

You Might Also Like
8 Comments
  • 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.

  • 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).

Lämna ett svar