ubuntuusers.de

Hinweis: Dies ist ein statischer Snapshot unseres Wikis vom 25. März 2013 und kann daher nicht bearbeitet werden. Der aktuelle Artikel ist unter wiki.ubuntuusers.de zu finden.

Node.js

Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:

nodejs_logo.png Node.js {en} ist eine Javascript-Bibliothek, welcher in erster Linie zum Erstellen von serverseitigen Javascript-Anwendungen gedacht ist. Die Bibliothek erweitert "klassisches" Javascript um die notwendigen Funktionen für Webanwendungen u.ä. Die Besonderheit der Bibliothek Node.js ist dabei, dass sie - ebenso wie Javascript an sich - komplett ereignis-basiert arbeitet und dadurch besonders gut für Anwendungen mit vielen (offenen) Verbindungen geeignet ist. Zur Ausführung des Skriptcodes setzt Node.js dabei auf die V8 Javascript Engine von Google.

Installation

Node.js ist in den offiziellen Paketquellen enthalten, aber in einer vergleichsweise alten Version 0.6.x:

  • nodejs (universe)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install nodejs 

sudo aptitude install nodejs 

Außerdem wird bei der Installation über die Paketquellen der Node Package Manager nicht mit installiert.

Von daher empfiehlt sich die manuelle Installation einer aktuellen Version des Programms, wovon auch im weiteren Verlauf des Artikels ausgegangen wird.

Manuell

Die manuelle Installation von Node.js ist nicht weiter schwierig oder aufwendig. Zuerst lädt man die aktuelle Version von der Projektseite herunter (der Download-Link befindet sich direkt auf der Startseite) und entpackt das Archiv[4] in ein beliebiges Verzeichnis, z.B. das eigene Homeverzeichnis.

Weiterhin benötigt der Installer Python, welches aber in allen *buntu-Versionen inkl. der Servervariante bereits installiert ist. Möchte man in Node.js die Kryptographie-Module nutzen (z.B. zur Checksummenbildung oder Verschlüsselung), dann muss vor dem Kompilieren noch das Paket openssl installiert werden[1]:

  • openssl (optional)

Wiki/Vorlagen/Installbutton/button.png mit apturl

Paketliste zum Kopieren:

sudo apt-get install openssl 

sudo aptitude install openssl 

Node.js kann mit dem bekannten Dreisatz[5] übersetzt werden, wobei die Kompilierung auch auf schnellen Rechnern ein paar Minuten in Anspruch nehmen kann. Die Dateien liegen dann alle unterhalb von /usr/local/bin/node und /usr/local/lib/node.

Soll das Programm in ein anderes Verzeichnis installiert werden, wie z.B. /opt oder das eigene Homeverzeichnis, dann muss beim Aufruf von ./configure die Option --prefix=ZIELVERZEICHNIS angegeben werden.

Benutzung

Bei der Benutzung von Node.js kommen zwei Programme zum Einsatz:

  • node - führt Skripte aus und stellt eine Javascript-Kommandozeile bereit

  • npm - der Node Package Manager

Node - Skripte ausführen & Kommandozeile

Es gibt zwei Möglichkeiten, Javascript-Code mit Node.js auszuführen: entweder man schreibt ein Skript / Programm und ruft es entsprechend auf, so dass es ausgeführt wird[2]:

node skript.js 

Oder man nutzt den interaktiven Modus, in dem Node.js eine Javascript-Kommandozeile zur Verfügung stellt:

node 

Darauf hin ändert sich der Prompt zu einem > und man kann beliebige Javascript-Befehl und Funktionen ausführen, z.B.:

1
2
3
> console.log("Hallo Welt")
Hallo Welt
undefined

Zum Beenden der Kommandozeile muss zwei Mal Strg + C gedrückt werden. node kennt eine Reihe von Optionen, welche in der Manpage nachgelesen werden können.

Hinweis:

Wer Node.js über die Paketquellen installiert hat, der muss statt node den Aufruf nodejs verwenden!

npm - Node Package Manager

Neben node wird auch noch der Node Package Manager {en} (kurz: npm) mit installiert. Dieser erlaubt es, die Kernfunktionalität von Node.js über Zusatzpakete zu erweitern. Es stehen weit über 20.000 Erweiterungen für alle erdenklichen Aufgaben zur Verfügung.

Zum Installieren einer Erweiterung dient der Befehl

npm install ERWEITERUNG 

zum Deinstallieren der Befehl

npm uninstall ERWEITERUNG 

npm kann aber noch weit mehr. So dient das Programm z.B. auch dazu, eigene Pakete für Node.js zu Erstellen und in den "Package Index" nachzuladen. Details zu den Funktionen sind in der offiziellen Dokumentation {en} zu finden.

Beispiel

Im folgenden ein kleines Beispiel für eine minimalistische Webapplikation, welche einen Namen abfragt und dann den Benutzer begrüßt. Dabei kommen die recht populäre, auf Node.js aufsetzende Bibliothek Express {en} sowie die Template-Engine Jade {en} zum Einsatz.

Beide müssen zuerst via npm installiert werden:

npm install express
npm install jade 

Das Beispiel besteht aus einer Hauptdatei beispiel.js und zwei Templates Names index.jade und hallo.jade, wobei die Templates in einem Verzeichnis views liegen müssen, welches sich unterhalb des Verzeichnisses befinden muss, in dem beispiel.js liegt.

Der Code sieht so aus:

beispiel.js

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
var express = require('express');
var app = express();

app.use(express.bodyParser());

app.get('/', function(req, res) {
    res.render('index.jade', { pageTitle: 'Eingabeformular' });
});

app.post('/', function(req, res) {
    res.render('hallo.jade', { pageTitle: 'Hallo!',
                               userName: req.body.username });
});

app.listen(8080)

index.jade:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
!!! 5
html(lang="de")
  head
    title =pageTitle
  body
    h1 Namenseingabge
    p Dein Name:
    form(action="/", method="post")
      input(type="text", name="username")
      input(type="submit")

hallo.jade:

1
2
3
4
5
6
7
!!! 5
html(lang="de")
  head
    title =pageTitle
  body
    h1 Herzlich Willkommen!
    p Hallo #{userName}

Startet man die Applikation über

node beispiel.js 

dann kann man das "Ergebnis" unter der Adresse http://localhost:8080 im Browser abrufen.

Deinstallation

Hat man Node.js manuell installiert und das klassische make install (statt make checkinstall) verwendet, dann lassen sich die Dateien wie folgt vollständig deinstallieren: Zuerst wechselt man in das Verzeichnis, in welches das Archiv entpackt wurde und aus dem heraus die Installation erfolgt ist. Dann ruft man dort den folgenden Befehl mit Root-Rechten auf[2][3]:

sudo make uninstall 

ubuntuusers.local › WikiNode.js