Node.js

Node.js Logo

Node.js Logo

Node.js gibt es seit mittlerweile 8 Jahren. Das .js steht für JavaScript und diese Sprache wird immer beliebter. Mit Node.js können Entwickler JavaScript auf dem Client und auf dem Server verwenden. Es läuft unter Windows, macOS, Linux und gilt heute als ausgereifte Technologie.

In diesem Blogeintrag wollen wir ein paar erste Schritte wagen.

Installation

Zur Installation musst du dir das gewünschte Paket aus dem Download Bereich des Node.js Projekts laden und installieren. Die neuesten Features finden sich in der Version 8.x..  Unter macOS gibt es die Möglichkeit, Node.js über Homebrew zu installieren.

$ brew install node

Nach der Installation kannst du im Terminal Fenster mit dem Befehl node –version überprüfen, ob alles korrekt installiert wurde. Wenn dir die Versionsnummer angezeigt wird, war die Installation erfolgreich.

$ node --version
v8.1.2

Node Konsole

Mit dem Befehl node startest du die Node.js Konsole. Mit dem Befehl console.log(‚Hallo Welt!‘); können wir auch gleich ein „Hallo Welt“ ausprobieren.

$ node
> console.log('Hallo Welt!');
Hallo Welt!
undefined
>

Mit dem Befehl .exit verlässt du die Konsole wieder.

Node Server Prozess

Mit Node.js lassen sich Server Prozesse starten. Hier ein Beispiel für einen einfachen Webserver:

var http = require('http');
http.createServer(function (req, res) {
  res.writeHead(200, {'Content-Type': 'text/plain'});
  res.end('Hallo Welt!\n');
}).listen(8124, '127.0.0.1');
console.log('Server running at http://127.0.0.1:8124');

Wie beim ersten vorherigen Programm gibt es auch hier einen console.log() Befehl, der die Nachricht ausgibt. Darüber wird allerdings mit dem Befehl http.createServer()… ein Webserver erzeugt und mit … listen() zum „lauschen“ auf der IP Adresse 127.0.0.1, Port 8124 gebracht. Deswegen endet dieses Programm auch nicht einfach nach dem Aufruf, sondern läuft solange, bis du es wieder abbrichst.
Schreibe die Befehle in eine Datei (server.js) und rufe sie mit dem Befehl node server.js auf.

$ node server.js
Server running at http://127.0.0.1:8124

Du hast jetzt einen lokalen Webserver auf Port 8184 laufen. Wenn du im Browser den URL aufrufst, siehst du die „Hallo Welt!“ Ausgabe.

Hallo Welt
Hallo Welt

Dieser Server läuft, solange du das Terminalfenster nicht schließt. Mit CTRL-C kannst du den Server Prozess stoppen.

Paket Manager NPM

Node.js bringt einen Paketmanager mit (NPM) um die vorhandenen Module wie http zu ergänzen. Mittlerweile gibt es mehrere hunderttausend Module! NPM vereinfacht den Download und die Nutzung von Zusatzmodulen. Module werden im aktuellen Verzeichnis in /node_modules gespeichert (npm install [Modulname]). Sie können auch mit dem -g Flag global installiert werden. Bei einer globalen Installation landen sie im globalen /node_modules Verzeichnis und können aus jedem anderen Verzeichnis ebenfalls aufgerufen werden.

Wenn ich beispielsweise

$ sudo npm install -g hexy

aufrufe

$ sudo npm install -g hexy
/usr/local/bin/hexy -> /usr/local/lib/node_modules/hexy/bin/hexy_cmd.js
+ hexy@0.2.9
added 1 package in 0.732s

wird der Hex-Dumper hexy installiert.

Das Kommando

$ hexy --width 12 server.js

zeigt mir dann die Datei server.js im Hexadezimalformat

00000000: 7661 7220 6874 7470 203d 2072 var.http.=.r
0000000c: 6571 7569 7265 2827 6874 7470 equire('http
00000018: 2729 3b0a 6874 7470 2e63 7265 ');.http.cre
00000024: 6174 6553 6572 7665 7228 6675 ateServer(fu
00000030: 6e63 7469 6f6e 2028 7265 712c nction.(req,
0000003c: 2072 6573 2920 7b0a 2020 7265 .res).{...re
00000048: 732e 7772 6974 6548 6561 6428 s.writeHead(
00000054: 3230 302c 207b 2743 6f6e 7465 200,.{'Conte
00000060: 6e74 2d54 7970 6527 3a20 2774 nt-Type':.'t
0000006c: 6578 742f 706c 6169 6e27 7d29 ext/plain'}

Mit dem Befehl

$ sudo npm uninstall -g hexy

lässt sich das Modul wieder entfernen.

Zugriff auf das Dateisystem

Mit Node.js lässt sich problemlos auf das Dateisystem zugreifen. Der folgende Code (ls.js) zeigt die Dateien im aktuellen Verzeichnis an:

var fs = require('fs');
var dir = '.';
if (process.argv[2]) dir = process.argv[2];
var files = fs.readdirSync(dir);
for (fn in files) {
  console.log(files[fn]);
}
$ node ls.js
ls.js
server.js

Fazit

Der Einstieg in Node.js ist, wie bei PHP auch, sehr einfach. Die Möglichkeiten, die sich mit Node.js auftun sind endlos. In den Bereichen Web-APIs und Single-Page-Apps eignet sich Node.js hervorragend und es macht Spaß damit zu arbeiten.

Links


tl;dr: Node.js ermöglicht JavaScript Programmierung auf dem Client und auf dem Server.

Save

Autor: Hagen Graf

consultant, author, trainer, solution finder, web architect, developer, open source lover, visionary, orator, the good old webmaster. Able to simplify!

Kommentar verfassen