ubuntuusers.de

Node.js

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

nodejs_logo.png 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)

Paketliste zum Kopieren:

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)

Paketliste zum Kopieren:

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)

Paketliste zum Kopieren:

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.

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 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 🇬🇧 (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.

Diese Revision wurde am 28. Juli 2019 11:06 von FrankLauer erstellt.
Die folgenden Schlagworte wurden dem Artikel zugewiesen: Programmierung, Server, Javascript