© GoodStudio/Shutterstock.com
Gestatten, Node.js - Teil 1

Node.js vorgestellt


Wer moderne Web- und Cloud-Anwendungen entwickelt, begegnet über kurz oder lang auch der JavaScript-Laufzeitumgebung Node.js. Was ist Node.js, wie installiert und konfiguriert man es und wie entwickelt man damit?

Die Einführung der Programmiersprache JavaScript im Jahr 1995 hat die Webwelt verändert. Webseiten waren bis dahin auf die Technologien HTML und CSS beschränkt und damit statisch. Die einzige Möglichkeit, um Inhalte dynamisch zu generieren, bestand im Einsatz entsprechender Technologien auf der Serverseite. Durch den Einsatz von JavaScript als im Webbrowser lauffähiger Programmiersprache änderte sich das schlagartig, es war die Grundlage für das, was heute als „Webanwendung“ bekannt ist: Programme, die früher dem Desktop vorbehalten waren, die inzwischen aber im Webbrowser ausgeführt werden können. Doch es gab einen Makel: JavaScript war ausschließlich im Webbrowser lauffähig, nicht aber auf dem Server. Daher benötigte man stets eine zweite Technologie, um die Serverseite abzubilden. Im Laufe der Jahre hatten hier verschiedene Technologien ihre Hochzeiten. War zunächst PHP die erste Wahl, änderte sich das mit dem Aufkommen von Java und .NET zunehmend. Auch Ruby und Python spielten nach dem Jahrtausendwechsel eine zunehmend größere Rolle für die Entwicklung von Webservern. Doch egal welche Sprache man nutzte, man hatte stets zwei Sprachen: JavaScript im Client, eine andere auf dem Server. Auf Dauer ist das unpraktisch und fehleranfällig, zudem erschwert es die Entwicklung.

Genau damit räumt Node.js auf. Bei Node.js handelt es sich nämlich um eine Laufzeitumgebung für JavaScript, die allerdings nicht im Webbrowser, sondern auf dem Server läuft. Dadurch wird es ermöglicht, JavaScript auch für die Entwicklung des Backends zu verwenden, sodass der bis dahin stets vorhandene Technologiebruch entfällt. Praktischerweise basiert Node.js aber auf dem gleichen Compiler für JavaScript wie auch der Webbrowser Chrome, nämlich V8 – und bietet damit eine hervorragende Unterstützung für moderne Sprachfeatures. Inzwischen ist Node.js, das im Jahr 2009 erstmals der Öffentlichkeit vorgestellt wurde, über 10 Jahre alt und wird von allen großen Web- und Cloud-Anbietern unterstützt. Anders als beispielsweise Java und .NET wird Node.js nicht von einem Unternehmen, sondern von einer Community entwickelt, was der Tauglichkeit für große und komplexe Enterprise-Projekte aber nicht schadet. Im Gegenteil ist gerade die Tatsache, dass Node.js unter einer Open-Source-Lizenz steht, inzwischen für viele Unternehmen ein wichtiger Faktor bei der Auswahl einer geeigneten Basistechnologie geworden.

Node.js installieren

Will man Node.js verwenden, gilt es, zunächst die Laufzeitumgebung zu installieren. Theoretisch kann man Node.js selbst kompilieren, doch stehen für alle gängigen Plattformen auch entsprechende vorübersetzte Binärpakete zur Verfügung. Das heißt, dass Node.js plattformübergreifend einsetzbar ist, unter anderem unter macOS, Linux und Windows. Aber auch auf dem Raspberry Pi und anderen ARM-basierten Plattformen lässt sich Node. js problemlos ausführen. Da die Binärpakete nur einige MB groß sind, ist die Installation prinzipiell schnell erledigt. Allerdings gibt es verschiedene Wege zur Installation. Der offensichtlichste ist das Verwenden eines passenden Installers, den man von der offiziellen Webseite [1] herunterladen kann. Obwohl die Installation darüber mit wenigen Klicks erledigt ist, empfiehlt es sich, für den professionellen Einsatz davon Abstand zu nehmen. Der Grund ist, dass die offiziellen Installer keine Side-by-Side-Installation verschiedener Versionen von Node.js zulassen. Führt man ein Update durch, wird die systemweit installierte Version von Node.js durch eine neue Version ersetzt, was zu Kompatibilitätsproblemen mit bereits entwickelten Anwendungen und Modulen führen kann. Daher sollte man eher auf ein Werkzeug wie nvm [2] setzen, das die Side-by-Side-Installation verschiedener Versionen von Node.js zulässt und diese verwalten kann. Allerdings steht nvm nur für macOS und Linux zur Verfügung. Für Windows gibt es Portierungen bzw. Nachbauten, beispielsweise nvm-windows [3], deren Funktionsweise ähnlich ist. Generell ist man mit macOS und Linux aber in der Welt von Node.js besser aufgehoben. Die meisten Werkzeuge und Module werden primär für diese beiden Plattformen entwickelt, und auch wenn JavaScript-Code theoretisch nicht plattformabhängig ist, gibt es doch immer wieder Kleinigkeiten, an denen man unter Windows scheitert oder mit denen man zu kämpfen hat. Zwar ist die Situation in den vergangenen Jahren durch das Engagement von Microsoft in diesem Bereich deutlich besser geworden, dennoch merkt man der Community die Wurzeln nach wie vor an. Um nvm zu installieren, genügt ein einfacher Befehl auf der Kommandozeile:

$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.35.3/install.sh | bash

Anschließend gilt es, die Kommandozeile neu zu starten, da nvm ansonsten einige Umgebungsvariablen nicht finden kann. Dazu genügen ein einfaches Schließen und erneutes Öffnen des Terminals. Dann lässt sich die gewünschte Version von Node.js installieren. Um z. B. die Version 14.9.0 zu installieren, genügt folgender Befehl:

$ nvm install 14.9.0

Bei Bedarf kann die Versionsnummer auch gekürzt angegeben werden. Will man zum Beispiel einfach die neueste Version aus der 14.x-Reihe installieren, kann man die spezifische Minor- und Releaseversion weglassen:

$ nvm install 14

Alle installierten Versionen lassen sich durch die Eingabe des Kommandos

$ nvm ls

auflisten. Um eine der installierten Versionen auszuwählen und zu aktivieren, dient der folgende Befehl, wobei auch hier wieder eine verkürzte Versionsnummer angegeben werden darf:

$ nvm use 14.9.0

Häufig möchte man eine spezifische Version als Standard festlegen, mit der man beispielsweise in einer neu geöffneten Kommandozeile arbeitet. Dafür kennt nvm das default-Konzept, wobei default als Alias für eine konkrete Version dient....

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Gewinner-Teams

Wir bieten Lizenz-Lösungen für Teams jeder Größe: Finden Sie heraus, welche Lösung am besten zu Ihnen passt.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang