====== Node.JS ======
[[http://de.wikipedia.org/wiki/Node.js|node.js]] lässt sich unter Ubuntu folgendermaßen installieren:
===== Instalation =====
Zunächst einmal sollte man vor der Installation via apt-get (mit Root-Rechten natürlich) das System updaten:
apt-get update
apt-get install g++ curl libssl-dev
Als nächstes gibt es die Möglichkeit via git die Pakete zu Downloaden:
apt-get install git-core
cd /usr/src
git clone https://github.com/joyent/node.git
cd node
git checkout v0.10.32
Alternativ lässt sich das ganze auch via tar downloaden:
wget http://nodejs.org/dist/node-latest.tar.gz
tar -xzvf node-latest.tar.gz
cd node-v0.10.32
Bei zukünftigen Downloades kann die Versionsnummer natürlich abweichen.
Kompilieren lässt sich das ganze folgendermaßen:
./configure
make
make install
===== Verwendung der Node- bzw. npm- Konsole =====
Öffnen lässt sich die Nodekonsole mittels:
/usr/local/bin/node
Für npm (node package manager) analog dazu:
/usr/local/bin/npm
Der npm dient dazu, Module von node.js zu installieren.
Eine Hello-World-Seite lässt sich folgendermaßen auf den Localhost bringen (bis zum Neustart):
var http = require('http');
// Lädt einen Httpserver
var server = http.createServer(function (request, response) {
response.writeHead(200, {"Content-Type": "text/plain"});
response.end("Hello World\n");
});
// Konfiguriert den Httpserver und sendet den Text 'Hello World' an den Server
server.listen(8000);
// Überträgt den Inhalt an den Port 8000 des localhosts (127.0.0.1)
console.log("Server running at http://127.0.0.1:8000/");
// Gibt einen Text nach Ausführung in der Konsole aus.
Alternativ zu den Konsolen, lässt sich der Code auch in einer .js-Datei speichern und mit node aufrufen:
node testdatei.js
Hierbei befindet sich die Testdatei im rootverzeichnis von nodejs oder es wird der relative Dateipfad benötigt.
===== Einbinden von HTML-Dateien =====
Node.js bringt von sich aus das Template Jade mit, welches Html-Dateien erzeugen soll, jedoch eine etwas andere, weil verkürzte, Syntax hat als "normales" HTML.
Hier ein Beispielcode:
!!! 5
html
head
title my jade template
body
h1 Hello #{name}
ul#books
li
a(href="#book-a") Book A
li
a(href="#book-b") Book B
p
| foo bar
| hello world
foo = "hello world"
h1= foo
//comment
select
each book, i in books
option(value=i) Book #{book}
{"name": "Bob"}
{"books": ["A", "B", "C"]}
Dabei wird klar, dass sich in Jade beispielsweise Variablen, Schleifen einfügen lassen, ohne eine zusätzliche Sprache benutzen zu müssen, im Gegensatz zu Html und, dass der Code insgesamt etwas kürzer ist (Im Beispiel bedingt durch Arrays und Schleifen und der generellen Syntax, da kein bzw. kein