Grundlagen der Node.js Webentwicklung: Verstehen Sie die Technologie

Node.js hat in den letzten Jahren erhebliche Beachtung gefunden. Doch, was genau bedeutet Node.js Webentwicklung?

centron Redaktion · Juli 2013 3 Min. Lesezeit Daten & Entwicklung

Kurz gesagt, Node.js ist ein Framework, basierend auf dem schnellsten JavaScript-Compiler, Google V8. Es legt den Schwerpunkt auf effizientes asynchrones I/O, insbesondere bei der Anbindung von externen Ressourcen wie Netzwerken oder Dateisystemen. Dank seiner JavaScript-Basis ist der Einstieg für Webentwickler ziemlich einfach.

Entwicklung eines http-Servers

Ein typischer Anwendungsfall ist die serverseitige Webentwicklung. Dafür stellt Node.js das http-Modul bereit, das Funktionen für die Webserver-Entwicklung enthält. Eingebunden wird das Modul über die require-Funktion:

var http = require('http');

Anschließend lassen sich seine Funktionen aufrufen, allen voran createServer, das einen neuen Webserver erzeugt. Diese Funktion erwartet ihrerseits eine Funktion als Parameter, die die eingehende Anfrage und die ausgehende Antwort als Objekte entgegennimmt. Damit der Webserver tatsächlich läuft, rufen Sie danach die listen-Funktion mit dem gewünschten Port auf:

var http = require('http');
var server = http.createServer(function (req, res) {
res.write('Hallo Node.js!');
res.end();
} );
server.listen(3000);

Gestartet wird diese erste Anwendung mit einem einzigen Befehl auf der Kommandozeile:

$ node app.js

Node.js ist plattformunabhängig und läuft daher nicht nur auf unixartigen Systemen wie OS X und Linux, sondern ebenso auf Windows. Die Wahl der Entwicklungsplattform bleibt Ihnen also überlassen.

Damit der Webbrowser weiß, dass der zurückgegebene Inhalt kein reiner Text, sondern eine HTML-Datei ist, müssen Sie zusätzlich den Content-Type-Header mitschicken. Dafür gibt es die writeHead-Funktion, die – wie write und end – ebenfalls auf dem res-Objekt bereitsteht:

var http = require('http');
var server = http.createServer(function (req, res) {
res.writeHead(200, {
'Content-Type': 'text/html'
}) ;
res.write('Hallo Node.js!');
res.end();
});
server.listen(3000);

Weitere Module in der Node.js Webentwicklung

Abgesehen vom http-Modul bringt Node.js eine Reihe weiterer Module mit, etwa für TCP/IP-basierte Server, für Zugriffe auf das Dateisystem oder für die Verarbeitung von Streams. Eine Liste aller enthaltenen Module samt Beschreibung findet sich in der Node.js Dokumentation.

Getragen wird Node.js von einer außergewöhnlich aktiven Community, die über die Jahre zahlreiche zusätzliche Module entwickelt hat. Für nahezu jeden Anwendungsfall stehen inzwischen mehrere Module bereit. Die Bandbreite reicht von der Anbindung von Datenbanken über Kommunikation nach verschiedenen Protokollen bis hin zur Video- und Audioprogrammierung.

Verwaltet wird dieser ganze Fundus mit npm (Node.js Package Manager). Sich darin zunächst einen Überblick zu verschaffen, ist allerdings nicht ganz einfach.

Anders als im Webbrowser führt Node.js den JavaScript-Code nicht in einer Sandbox aus, sodass Sie weitreichenden Zugriff auf das darunterliegende System haben. Dadurch lässt sich Node.js nicht nur für Webanwendungen einsetzen, sondern beispielsweise auch als Ersatz für Bash- oder PowerShell-Skripte.

Stärken und Limitierungen

Die größte Stärke liegt darin, hoch skalierbare Anwendungen in einer Sprache zu schreiben, die jeder Webentwicklerin und jedem Webentwickler vertraut ist. Sein volles Potenzial entfaltet Node.js allerdings nur, wenn tatsächlich viele I/O-Zugriffe stattfinden. Besonders geeignet ist es außerdem für Push-Dienste, etwa auf Basis von Websockets.

Ein weiterer interessanter Aspekt ergibt sich aus der Verwendung von JavaScript: Viele REST-basierte Webdienste setzen heute auf JSON – ein Datenformat, mit dem JavaScript von Haus aus umgeht. Für die Entwicklung solcher Dienste eignet sich Node.js daher besonders gut, vor allem in Verbindung mit einer NoSQL-Datenbank, die ebenfalls JSON spricht.

Für jedes Szenario taugt Node.js dennoch nicht: Stützt sich eine Anwendung kaum auf I/O-Zugriffe, sondern auf umfangreiche, CPU-intensive Berechnungen, ist Node.js weitgehend ungeeignet. Es lohnt sich also, im Einzelfall abzuwägen.

Fazit zur Node.js Webentwicklung

Node.js ist eine ausgesprochen interessante Technologie, mit der sich komplexe und sehr gut skalierbare Webanwendungen mit wenigen Zeilen Code entwickeln lassen. Der Einsatz von JavaScript macht Webentwicklern den Einstieg leicht.

Die Herausforderung besteht dabei nicht darin, den – vergleichsweise kleinen – Kern zu beherrschen, sondern das umfangreiche Ökosystem kennenzulernen. Das gelingt nur mit Zeit und Geduld oder mit der Anleitung einer Entwicklerin oder eines Entwicklers, die oder der bereits Erfahrung mit Node.js hat.

Wer I/O-lastige Webanwendungen, webbasierte Push-Dienste oder REST-Webdienste entwickelt, ist gut beraten, einen Blick auf Node.js zu werfen.

centron Redaktion

Wissenswertes aus Cloud, Sicherheit und IT-Betrieb – geschrieben vom Team hinter der ccloud³, betrieben im Rechenzentrum in Hallstadt bei Bamberg.

Teilen

Jetzt kostenlos anfangen

Melden Sie sich an und erhalten Sie in den ersten 60 Tagen ein Guthaben von 200 € bei centron.

Dieses Werbeangebot gilt nur für neue Konten. Angebot ausschließlich für Gewerbetreibende.