Node.js unter Linux Howto – Oder: Wad kann des Node.js überhaupt?!?

Erst mal vorn weg: Ich muss meine Erfahrungen selbst noch resumieren – aber wenn man es verstanden hat – glaub ich – ist das „nen janz schön cooler shit“ 🙂

Node.js… Wo fange ich da an…?
Im Prinzip hat es sich etwas durch lesen ergeben.
Es geht hier Primär um JavaScript – dieses wurde irgendwann mal dafür gedacht in Webseiten eingebettet zu werden und dem User die Interaktion mit dem Browser bzw der Webseite zu vereinfachen.
Dies ist soweit nichts neues.
Wenn nun dieses Javascript aber im Browser – und somit lokal läuft – warum kann es dann nicht auch als quasi eigene Anwendung auf einem Server als Server-Prozess laufen?

Dies ist genau die Frage die ich mir gestellt habe.

Und am Ende angekommen bin ich bei Node.js.
Dieses kann JS Qullcode-Dateien einlesen und in einem Prozess auf einem Server abarbeiten.
Man muss sich dies wie den PHP Interpreter vorstellen, der ein PHP script als CLI auf der Console ausführen kann.

Was man letzendlich dafür braucht ist nicht viel:

# cd /src
# wget -N http://nodejs.org/dist/node-latest.tar.gz
# tar xzvf node-latest.tar.gz && cd `ls -rd node-v*`
# make install
# cp node /srv/nodejs

In /srv/nodejs habe ich nun das Node.js Binary mit dem man die JS Quellen aufrufen kann.
Für alle die Jenigen, welche die Abhängigkeiten Interessieren:

root@Buildrootv3.4 > ldd /srv/nodejs
        linux-gate.so.1 =>  (0xf76e9000)
        librt.so.1 => /lib/librt.so.1 (0xf76d9000)
        libdl.so.2 => /lib/libdl.so.2 (0xf76d5000)
        libstdc++.so.6 => /usr/lib/libstdc++.so.6 (0xf75e7000)
        libm.so.6 => /lib/libm.so.6 (0xf75c0000)
        libgcc_s.so.1 => /lib/libgcc_s.so.1 (0xf75b3000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xf759b000)
        libc.so.6 => /lib/libc.so.6 (0xf745d000)
        /lib/ld-linux.so.2 (0xf76ea000)

Sind also weitestgehend Standard-Abhängigkeiten, welche ohne Probleme auf jedem Linux-System Vorzufinden sind.
Das gestrippte Binary an sich ist nach dem kompilieren 7,2 MB groß.

So… geschafft… Und… Was genau macht man jett damit?
Die Frage ist Relativ einfach zu beantworten 🙂
Genauso wie es die Node.js bastler auf ihrer Seite schon machen, wollen wir hier eine example.js bauen in der ein kleiner Webserver in Javascript etwas ausgeben soll.
Das ganze siet dann wie folgt aus:

1
2
3
4
5
6
var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hello World\n');
}).listen(1337, '127.0.0.1');
console.log('Server running at http://127.0.0.1:1337/');

Starten tun man das ganze dann mit:

# /srv/nodejs example.js

Als Ausgabe kommt dann in der Console:

Server running at http://127.0.0.1:1337/

Und wenn man die Seite aufruft kommt: „Hello World“ 🙂

so…
Und was man sonst noch alles damit machen kann, erzähl ich euch in einen der folgenden Blog-Posts 🙂

leave your comment


*

Unterstütze den Frickelblog!