Node.js
Dieser Artikel wurde für die folgenden Ubuntu-Versionen getestet:
Dieser Artikel ist mit keiner aktuell unterstützten Ubuntu-Version getestet! Bitte teste diesen Artikel für eine Ubuntu-Version, welche aktuell unterstützt wird. Dazu sind die Hinweise zum Testen von Artikeln zu beachten.
Zum Verständnis dieses Artikels sind folgende Seiten hilfreich:
Node.js 🇬🇧 ist eine Laufzeitumgebung für Javascript, welche in erster Linie zum Erstellen von serverseitigen Javascript-Anwendungen gedacht ist. Die Bibliothek erweitert "klassisches" Javascript um die notwendigen Funktionen für Webanwendungen. Die Besonderheit von 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¶
aus den Paketquellen¶
Node.js ist in den offiziellen Paketquellen enthalten, jedoch nicht immer in der aktuellsten verfügbaren Version.
nodejs (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install nodejs
Oder mit apturl installieren, Link: apt://nodejs
Von daher empfiehlt sich die manuelle Installation einer aktuellen Version des Programms, wovon auch im weiteren Verlauf des Artikels ausgegangen wird.
Außerdem wird bei der Installation über die Paketquellen der Node Package Manager nicht mit installiert.
Dieser kann aber über das Paket
npm (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install npm
Oder mit apturl installieren, Link: apt://npm
nachinstalliert werden.
Falls bei der Paketinstallation mit npm der Fehler sh: 1: node: not found auftritt muss noch folgenden Zusatzpaket installiert werden:
nodejs-legacy (universe)
Befehl zum Installieren der Pakete:
sudo apt-get install nodejs-legacy
Oder mit apturl installieren, Link: apt://nodejs-legacy
Fremdquelle¶
Hinweis!
Zusätzliche Fremdquellen können das System gefährden.
Es gibt eine Fremdquelle, welche in die eigenen Paketquellen eingebunden werden kann, welche die aktuellen Version von Node.js als deb-Paket enthält. Das Vorgehen ist in der Dokumentation von Node.js 🇬🇧 erklärt. Bei dieser Installation wird ein Skript heruntergeladen und ausgeführt, welche automatisch die zur Ubuntu-Version passende Paketquelle einbindet und den passenden Schlüssel via apt-key installiert (dieser Weg funktioniert seit 22.04 nicht mehr, da apt-key nicht mehr unterstützt wird).
Für diesen Installationsweg sind zwei Befehl notwendig[2][3]:
curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash - sudo apt-get install -y nodejs
Hier würde die Version aus dem 12.x Zweig von Node.js installiert.
Die Versionsangabe _12.x
kann bei Bedarf durch eine andere (unterstützte Version) ersetzt werden.
Benutzung¶
Bei der Benutzung von Node.js kommen zwei Programme zum Einsatz:
node
- führt Skripte aus und stellt eine Javascript-Kommandozeile bereitnpm
- 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 🇬🇧 (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 🇬🇧 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 🇬🇧, body-parser 🇬🇧 sowie die Template-Engine Jade 🇬🇧 zum Einsatz.
Beide müssen zuerst via npm installiert werden:
npm install express npm install body-parser 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 16 | var express = require('express'); var bodyParser = require('body-parser'); var app = express(); var urlencodedParser = bodyParser.urlencoded({ extended: false }); app.get('/', function(req, res) { res.render('index.jade', { pageTitle: 'Eingabeformular' }); }); app.post('/', urlencodedParser, 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 | doctype html 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 | doctype html 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.
Links¶
API-Dokumentation 🇬🇧 von Node.js
Node.js im franz. Ubuntu-Wiki