NodeJS

NodeJS

Als weiteres “Software” Werkzeug in Verbindung mit einem Raspberry Pi wird NodeJS eingesetzt. Eine Grundinstallation sowie ein kurzer Test wird im folgenden Beitrag beschrieben.

NodeJS ist ein Open-Source Framework zur serverseitigen Ausführung von Java-Script. NodeJS basiert auf der in C/C++ von Google entwickelten Java-Script Implementierung V8. V8 wurde ursprünglich zur Verwendung in Googles eigenem Browser Chrome entwickelt. Durch die Konvertierung von Java-Script in nativen Maschinencode ist eine schnelle Ausführung
von Java-Script möglich. NodeJS ist modular aufgebaut und kann beliebig um eine ständig wachsende Anzahl an verfügbaren Modulen erweitert werden. Zur Erweiterung und Verwaltung etwaiger Abhängigkeiten wird der Paketmanager npm verwendet. Im Gegensatz zu den meisten anderen anfragen-basierenden Websprachen, wie z.B. PHP, ist NodeJS im Grunde ereignisgesteuert. Durch die asynchrone, nicht blockierende I/O Architektur zur parallelen Verarbeitung von Dateisystem- oder Datenbankzugriffen ist NodeJS besonders geeignet für datenintensive Echtzeit- oder Multi-User Anwendungen.

Installation von NodeJS auf einem Raspberry Pi 3

Da im Rahmen der Grundinstallation des Raspberry Pi 3 die Minimalversion des Betriebssystems Raspbian (Lite-Version) installiert wurde, wird keine NodeJS Version mitgeliefert. Der folgende Abschnitt beschreibt die Grundinstallation von NodeJS auf Basis der aktuellen LTS Version. Da in den Repositorys der zum Erstellungszeitpunkt dieser Arbeit verwendeten Raspbian Version nur eine veraltete NodeJS Version angeboten wird und für die spätere Verwendung von Node-RED die NodeJS Version 6 empfohlen wird, muss zunächst mittels eines bereitgestellen Skriptes ein neues Repository hinzugefügt werden.

Dies wird durch die Ausführung des folgenden Befehls erreicht:

$ sudo curl -sL https :// deb. nodesource . com/ setup_6 .x | sudo -E bash -

Nach erfolgreicher Ausführung des Skriptes kann mit folgendem Befehl die aktuellste LTS Version von NodeJS inklusive des Paketmanagers npm installiert werden:

$ sudo apt -get install nodejs

Nach abgeschlossener Installation kann mit dem Befehl

$ node -v

die Installation überprüft werden. Nach Ausführung des Befehls sollte eine Bildschirmausgabe mit der aktuell installieren NodeJS Version erscheinen. Zum Zeitpunkt der Erstellung der Abschlussarbeit entspricht das der Version v6.10.3.

“Hello World” Beispiel auf Basis eines NodeJS Webservers

Im Folgenden soll in Java-Script ein Webserver entstehen, welcher jegliche Anfrage mit der Textausgabe “Hallo fleissiger Leser!” beantwortet. Hierzu wird im Home Verzeichnis des Users pi eine Datei namens hallo.js erstellt und mittels des Texteditors nano zur Bearbeitung geöffnet.

$ cd / home
$ sudo nano hallo .js

Mit Hilfe von nano wird folgender Inhalt in die Datei hallo.js geschrieben:

// Laedt das mitgelieferte Modul http zur Erstellung eines Webservers
var http = require (’http’);
// Konfiguration des Webservers
var server = http.createServer(function(request,response) {
response.writeHead 200,{"Content-Type": "text/plain"});
response.end("Hallo fleissiger Leser !\n");
});
// Server an Port 4711 binden
server.listen(4711) ;
// Ausgabe einer Statusnachricht auf der Konsole (Putty)
console.log("Server laeuft auf http://127.0.0.1:4711/");

Nach dem Abspeichern der Datei kann der nun erstellte Server mit folgendem Befehl gestartet werden:

$ node hallo.js

Auf der Konsole sollte die Ausgabe “Server laeuft auf http://127.0.0.1:4711/ “ erscheinen.

Ausgabe des Programmes hallo.js

Als Test kann nun in einem beliebigen Webbrowser die IP Adresse des Raspberry Pi 3 auf Port 4711 aufgerufen werden. Hierbei ist zu beachten, dass von einem externen Client die tatsächliche IP Adresse des Raspberry Pi verwendet werden muss und nicht die localhost (127.0.0.1) Adresse. In diesem speziellen Fall ist die IP Adresse des verwendeten Raspberry
Pi 3 192.168.1.80. Die aufzurufende Webseite hat dementsprechend  folgende Adresse:

http://192.168.1.80:4711
Ausgabe des Webbrowsers

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.