Node.js – Die Programmiersprache für bessere Laufzeiten
Seit Neustem finden die FireStorm Kunden auf unseren Hosting Servern auch die Programmiersprache “Node.js”. Diese haben wir kürzlich für alle Kunden freigeschaltet und wollen in diesem kurzen Artikel etwas näher über die JavaScript Laufzeitumgebung berichten. – Viel Spaß beim Lesen!
Was genau ist Node.js überhaupt?
Bei Node.js handelt es sich um eine Programmiersprache bzw. um eine JavaScript Laufzeitumgebung, welche auf Chromes V8 JavaScript-Engine basiert. Diese wurde extra entwickelt, um skalierbare Netzwerkanwendungen zu bauen. Dabei basiert die Laufzeitumgebung, in Englisch Runtime Enviroment und kurz RTE, auf Events und ist asynchron. Wird eine neue Anfrage gesendet, führt Node.js die Callback Funktion aus. Wenn allerdings nichts passiert, so setzt sich Node.js automatisch in den Ruhezustand.
Damit steht Node.js konträr zu gängigen und aktuellen Modellen. Denn eine Vielzahl der Konkurrenten nutzt die Threads des Betriebssystems, was gerade im Vergleich zu Node.js nicht wirklich effizient ist. Zudem ist dies nicht einfach umzusetzen und die Nutzer der anderen Modelle müssen sich um auftretende Deadlocks im Prozess kümmern.
Bei Node.js hingegen wird auf die Nebenläufigkeit gesetzt und es gibt keinerlei Blockierungen und Schwierigkeiten. Der Grund hierfür liegt darin, dass nahezu keine Funktion von Node.js direkt eine I/O-Operation ausführt. All dies führt dazu, dass die Nutzer von Node.js sich ganz einfach und unkompliziert mit der Entwicklung von skalierbaren Systemen beschäftigen können. Nutzern dieser Programmiersprache wird die Umsetzung sehr leicht gemacht, weshalb viele Node.js nutzen und weiterempfehlen.
Nodde.js setzt auf die Nebenläufigkeit und funktioniert ohne jegliche Blockierungen.
Welche weiteren Vorteile hat Node.js?
Das Design von Node.js ähnelt dem von Pythons “Twisted” oder Rubys “Event Machine” recht stark und wurde auch durch diese beeinflusst. Doch bei Node.js liegt der Fokus noch stärker auf dem Event-Modell. Denn die Ereignisschleife ist nicht blockiert oder über zusätzliche Aufrufe zu erreichen, sondern direkt in die Laufzeitumgebung eingebunden und startbar.
Sobald ein Eingabe-Skript ausgeführt wurde, startet Node.js die Ereignisschleife. Dies ist bei anderen Umsetzungen meist deutlich komplizierter und nur über blockierende Aufrufe möglich. Wenn es keine auszuführenden Callback Funktionen mehr gibt, wird die Ereignisschleife bei Node.js automatisch verlassen.
Node.js eignet sich ideal als Basis für Frameworks sowie Web-Bibliotheken, da der Fokus auf einer geringen Latenz und dem Streaming liegt. Die Grundlage hierfür ist das Basiselement HTTP.
Trotz fehlender Threads bei Node.js können untergeordnete Prozesse ganz einfach mithilfe der child_process.fork() API gestartet werden. Zudem ermöglicht das Cluster Modul die gemeinsame Verwendung von Sockets. Dies macht die Verteilung der Last über die Kerne möglich und ermöglicht somit auch die volle Ausnutzung der Kerne auf einer Maschine.
Mit Node.js haben alle Kunden von FireStorm nun viele Möglichkeiten und eine einfache Möglichkeit zur Entwicklung skalierbarer Netzwerkanwendungen.
Wie verwende ich eine Node.JS Anwendung auf dem Server?
Wenn du eine Node.js-Anwendung auf deiner Website installieren möchtest, musst du zuerst die Anwendungsdateien auf den Server hochladen. Du kannst die Dateien über FTP oder mit dem File Manager hochladen.
Um deine Anwendung einzurichten, gehe auf Websites & Domains und klicken auf Node.js. Auf dieser Seite werden mehrere Steuerelemente angezeigt, mit denen du die Node.js-Anwendung verwalten kannst:
- Node.js-Version. In diesem Steuerelement wird die aktuell ausgewählte Version der Laufzeitumgebung angezeigt, die für die Ausführung der Anwendung eingesetzt wird. Klicke auf die Versionsnummer, um eine andere Node.js-Version auszuwählen.
- Dokumentenstamm. Hier kannst du das Dokumenten-Stammverzeichnis der Domain einrichten. Dabei muss es sich um ein Unterverzeichnis des Anwendungs-Stammverzeichnisses handeln (siehe unten).
- Anwendungsmodus. Du kannst zwischen den Modi „development“ und „production“ auswählen oder einen benutzerdefinierten Modusnamen angeben. Die Umgebungsvariable
NODE_ENV
spiegelt deiner Auswahl wieder. - Anwendungs-URL. Klicke auf diese automatisch generierte URL, um die Anwendung im Browser zu öffnen.
- Anwendungsstamm. Standardmäßig entspricht das Anwendungs-Stammverzeichnis dem Stammverzeichnis der Domain. Klicke auf „[Öffnen]“, um den Inhalt des Stammverzeichnisses der Anwendung im File Manager anzuzeigen. Ausserdem kannst du bei unseren Linux Hostings auf den derzeit festgelegten Stammpfad der Anwendung klicken, um einen benutzerdefinierten Anwendungsstamm anzugeben.
- Anwendungsstartdatei. Standardmässig lautet der Name der Startdatei app.js. Klicke auf den Namen, um einen benutzerdefinierten Namen für die Startdatei anzugeben.
- (Linux Hosting) Benutzerdefinierte Umgebungsvariablen. Hier findest du die Liste der benutzerdefinierten Umgebungsvariablen, die du für deine Anwendung festgelegt hast (falls vorhanden). Klicke auf „[Angeben]“, um Umgebungsvariablen für deine Anwendung hinzuzufügen oder zu entfernen:
- Klicke auf Variable hinzufügen, um weitere Umgebungsvariablen zur Liste hinzuzufügen. Gebe den Variablennamen im linken Feld ein und den gewünschten Wert im rechten Feld.
- Bearbeite die in der Liste vorhandenen Variablen, indem du auf das entsprechende Feld klickst und den neuen Namen oder Wert für die Variable eingibst.
- Um eine Variable aus der Liste zu entfernen, klicke neben der Variable auf Entfernen.
Klicke auf OK, wenn du fertig bist.
Wenn das Stammverzeichnis der Anwendung die Konfigurationsdatei package.json
enthält, werden zwei zusätzliche Steuerelemente verfügbar:
- npm install. Installiert die in der Datei
package.json
beschriebenen Pakete. - run-script. Führt einen Befehl aus, der im Abschnitt „Scripts“ der Datei
package.json
angegeben ist. Trage den Namen des Skripts, das ausgeführt werden soll, und Parameter ein und klicke auf OK.
Wenn deine Anwendungsdateien die Konfigurationsdateien package.json
, Gruntfile.js
, gulpfile.js
oder webpack.config.js
enthalten, werden sie rechts im Abschnitt „Zugriff auf Konfigurationsdateien“ angeführt. Klicke auf den Namen einer Konfigurationsdatei, um sie zu öffnen und zu bearbeiten.