Zum Inhalt springen
Akinware
Nahaufnahme von Quelltext auf dunklem Bildschirm

Was ist Node.js?

Node.js bringt JavaScript auf den Server und treibt dort Schnittstellen, Datenabgleiche und ganze Backends an. Woher es kommt, was es gut kann und wo seine Grenzen liegen, verständlich erklärt.

Lesezeit
9 Minuten
Autor
Samet Akin
Veröffentlicht

Was ist Node.js?

Jahrelang lebte JavaScript ausschließlich im Browser. Es machte Menüs auf, prüfte Formulare und lud Inhalte nach, aber auf dem Server hatte es nichts zu suchen. Dort liefen Sprachen wie PHP oder Java. Node.js hat das geändert: Es nimmt die V8-Engine, die auch in Google Chrome JavaScript ausführt, und verpackt sie in ein Programm, das direkt auf dem Rechner läuft. Seitdem kann JavaScript Dateien lesen, mit Datenbanken sprechen und Webserver betreiben.

Wichtig für die Einordnung: Node.js ist keine Programmiersprache und kein Framework. Es ist eine Laufzeitumgebung, also das Stück Software, das JavaScript-Code entgegennimmt und ausführt. Die Sprache bleibt JavaScript, in der Praxis meist TypeScript, das vor dem Start zu JavaScript übersetzt wird. Ein kompletter Webserver ist damit erstaunlich kurz:

Zu Node.js gehört von Anfang an npm, die Paketverwaltung. Über sie lassen sich fertige Bausteine anderer Entwickler ins Projekt holen, vom Datumsformat bis zur kompletten Datenbankanbindung. Mit über zwei Millionen Paketen ist npm die größte Sammlung dieser Art, und praktisch jedes moderne Web-Werkzeug, vom Compiler bis zum Build-System, läuft selbst auf Node.

const { createServer } = require("node:http");

const server = createServer((anfrage, antwort) => {
  antwort.end("Hallo aus Node.js");
});

server.listen(3000);
// Ein laufender Webserver, ohne weitere Software

Wie funktioniert Node.js?

Das Besondere an Node.js ist die Art, wie es wartet. Ein Server verbringt die meiste Zeit nicht mit Rechnen, sondern mit Warten: auf die Datenbank, auf eine Datei, auf die Antwort eines anderen Systems. Viele klassische Server stellen für jede Anfrage einen eigenen Bearbeiter ab, der in dieser Wartezeit nichts tut. Node.js arbeitet anders: Es gibt einen einzigen Ausführungsstrang, der eine Aufgabe anstößt, die Wartezeit aber sofort für die nächste Anfrage nutzt. Sobald die Antwort da ist, macht er an der alten Stelle weiter.

Man kann sich das wie einen einzelnen Kellner vorstellen, der sehr gut organisiert ist. Er nimmt eine Bestellung auf, reicht sie in die Küche und bedient den nächsten Tisch, statt am Tresen zu warten. Solange die Küche das Kochen übernimmt, schafft er erstaunlich viele Tische. Genau deshalb kommt Node.js mit vielen gleichzeitigen Anfragen gut zurecht, ohne viel Arbeitsspeicher zu belegen.

Dieses Modell hat eine Kehrseite, die man kennen muss: Der eine Kellner darf nicht selbst kochen. Braucht eine Aufgabe den Prozessor lange am Stück, etwa das Umrechnen großer Bildstapel, steht der ganze Betrieb, bis sie fertig ist. Für solche Fälle lagert man die Arbeit in eigene Prozesse oder einen getrennten Dienst aus. Für das tägliche Entgegennehmen, Prüfen und Weiterreichen von Daten ist das Modell dagegen wie gemacht.

const [bestand, preise] = await Promise.all([
  fetch("https://api.beispiel.de/bestand"),
  fetch("https://api.beispiel.de/preise"),
]);
// Beide Anfragen laufen gleichzeitig,
// Node wartet nicht zweimal nacheinander

Wozu wird Node.js verwendet?

Node.js sitzt heute überall dort, wo Systeme miteinander sprechen. Es beantwortet Anfragen von Webseiten und Apps, verbindet Programme, die nichts voneinander wissen, und erledigt Aufgaben nach Zeitplan. Typische Einsatzgebiete sind:

  • Schnittstellen, über die Webseiten, Apps und fremde Systeme Daten holen und schreiben
  • Backends für Webanwendungen wie Portale, Dashboards und interne Werkzeuge
  • Abgleiche zwischen Systemen, etwa zwischen Onlineshop und Warenwirtschaft
  • Hintergrunddienste, die nachts Berichte erzeugen, Mails verschicken oder Daten aufräumen
  • Werkzeuge für die Webentwicklung selbst, denn Compiler und Build-Systeme laufen fast alle auf Node

Bei uns gehört Node.js seit Jahren zum Alltag. Schnittstellen, nächtliche Datenabgleiche und kleine Helferskripte bauen wir damit, weil Server und Oberfläche dann dieselbe Sprache sprechen und sich Typen und Werkzeuge teilen. Ein Beispiel: Ein Händler pflegt Bestände in seiner Warenwirtschaft, der Onlineshop weiß davon nichts. Ein Node-Dienst holt nachts die Zahlen ab, rechnet sie um und schreibt sie in den Shop. Fällt eine Seite aus, sammelt er die Vorgänge und arbeitet sie später ab, statt sie zu verlieren.

Die Geschichte von Node.js

Node.js entstand aus Unzufriedenheit. Der Entwickler Ryan Dahl störte sich daran, wie umständlich Server damals mit vielen gleichzeitigen Verbindungen umgingen, und baute 2009 eine Umgebung, die das Warten zum Grundprinzip macht. Dass er dafür JavaScript wählte, war ein Glücksfall: Die Sprache kannte jeder Webentwickler, und die V8-Engine von Google machte sie gerade schnell genug für den Server. Was als Experiment eines Einzelnen begann, wird heute von der OpenJS Foundation gepflegt, einer Stiftung, hinter der Firmen wie Google und Microsoft stehen.

Erschienen
2009, entwickelt von Ryan Dahl
Grundlage
V8-Engine aus Google Chrome
Gepflegt von
OpenJS Foundation
Lizenz
Quelloffen und kostenlos (MIT)
Paketverwaltung
npm, über zwei Millionen Pakete

Vom Experiment zum Serverstandard

Hände auf einer Tastatur vor einem Bildschirm mit Code

Die Vorstellung

Ryan Dahl zeigt Node.js erstmals auf einer Entwicklerkonferenz. Die Idee, JavaScript auf dem Server laufen zu lassen, wirkt auf viele zunächst wie eine Spielerei.

2009

Was Node.js nicht kann

Node.js ist kein Alleskönner, und wer es einsetzt, sollte die Grenzen kennen. Die wichtigsten sind:

  • Rechenintensive Aufgaben blockieren den einen Ausführungsstrang: große Bildstapel, Videoumwandlung oder schwere Berechnungen gehören in eigene Dienste oder andere Sprachen
  • Node bringt keine Struktur mit: Wie ein Projekt aufgebaut wird, muss ein Framework wie NestJS oder das Team selbst festlegen
  • Die Versionspflege ist Pflicht: Langzeitversionen werden rund drei Jahre unterstützt, danach gibt es keine Sicherheitsaktualisierungen mehr
  • Die Freiheit von npm ist auch ein Risiko: Wer wahllos Pakete einbaut, holt sich fremden Code ins Projekt, den niemand geprüft hat

Keiner dieser Punkte spricht gegen Node.js, sie beschreiben nur, wofür es gebaut wurde: viele Anfragen entgegennehmen, Daten prüfen und weiterreichen. Wer das im Blick behält, bekommt einen sehr verlässlichen Unterbau.

Node.js oder PHP?

Die häufigste Vergleichsfrage auf dem Server heißt: Node.js oder PHP? Beide sind ausgereift, beide betreiben einen großen Teil des Webs, und beide werden noch lange gepflegt. Die Entscheidung hängt weniger an der Technik als am Umfeld:

  • Node.js passt, wenn die Oberfläche ohnehin in JavaScript oder TypeScript entsteht, denn dann teilen sich beide Seiten Sprache, Typen und Werkzeuge
  • Node.js liegt vorn, wenn viele Verbindungen gleichzeitig offen bleiben, etwa bei Live-Daten, Chats oder Benachrichtigungen
  • PHP passt, wenn günstiges Standard-Webhosting reicht, denn es läuft dort ohne weitere Einrichtung
  • PHP ist im Vorteil, wenn das Projekt auf WordPress, Shopware oder einem Framework wie Laravel aufbaut, denn diese Welt ist in PHP zu Hause

Ehrlich gesagt entscheidet oft der Bestand: Wer schon PHP-Systeme betreibt und Leute dafür hat, fährt mit PHP gut. Wer neu startet und eine moderne Weboberfläche plant, landet meist bei Node. Wir setzen beides ein und beraten nach Projekt, nicht nach Vorliebe. Mehr dazu steht auf unserer Seite zur Node.js-Entwicklung.

Node.js aus Kundensicht

Als Auftraggeber sieht man Node.js nie direkt, man spürt es an den Folgekosten. Weil Server und Oberfläche dieselbe Sprache sprechen, braucht es kein zweites Team und keinen Wissensbruch in der Mitte des Projekts. Ein Entwickler, der das Formular baut, versteht auch die Schnittstelle dahinter. Das macht Änderungen günstiger und die Suche nach Dienstleistern leichter, denn JavaScript-Entwickler gibt es wie kaum eine andere Gruppe.

Bedenken sollte man die laufende Pflege. Ein Node-Dienst ist kein Webspace, den man einmal bucht und vergisst: Alle zwei Jahre steht ein Versionswechsel an, und die verwendeten Pakete wollen aktuell gehalten werden. Das ist planbare Routine, wenn sie jemand übernimmt, etwa im Rahmen von Hosting und Wartung. Wer das von Anfang an einrechnet, erlebt keine Überraschungen.

Lohnt sich Node.js noch?

Ja, und zwar auf absehbare Zeit. Node.js ist seit über fünfzehn Jahren in Betrieb, wird von einer Stiftung mit großen Firmen im Rücken gepflegt und bekommt weiter neue Fähigkeiten: TypeScript-Dateien führt es inzwischen direkt aus, viele Werkzeuge, die früher als Paket kamen, sind heute eingebaut. Das ist der Lebenslauf einer Plattform, die bleibt.

Konkurrenz gibt es trotzdem. Alternativen wie Deno und Bun greifen einzelne Schwächen an und treiben damit auch Node selbst voran. Für Auftraggeber ist das eine gute Nachricht: Der Wettbewerb hält die Plattform frisch, und weil alle drei JavaScript ausführen, bleibt der eigene Code auch bei einem späteren Wechsel weitgehend verwendbar. Die sichere Wahl für den Betrieb ist heute Node, und nichts deutet darauf hin, dass sich das bald ändert.

Was Node.js stark macht

Beleuchtete Tastatur vor einem Bildschirm mit einer Oberfläche

Eine Sprache überall

Server und Browser sprechen JavaScript. Typen, Werkzeuge und Wissen gelten auf beiden Seiten, niemand muss umdenken.

Laptop und Tablet zeigen dieselbe Anwendung im Browser

Viele Anfragen gleichzeitig

Node wartet nicht, es arbeitet in Wartezeiten weiter. Deshalb bedient ein kleiner Server erstaunlich viele Verbindungen.

Bildschirm mit einem Ablaufdiagramm aus verbundenen Knoten

Das größte Ökosystem

Über zwei Millionen npm-Pakete decken fast jeden Bedarf ab. Für die meisten Aufgaben gibt es einen erprobten Baustein.

Bildschirm mit einem Dashboard voller Diagramme und Kennzahlen

Verbindet fremde Systeme

Warenwirtschaft, Shop, Buchhaltung: Node-Dienste holen Daten ab, rechnen sie um und reichen sie weiter, auch nachts um drei.

Was wir mit Node.js bauen

Node.js ist bei uns der Standard für alles, was im Hintergrund läuft und Systeme verbindet.

  • Laptop mit einer Anmeldemaske für ein Kundenportal

    Webanwendungen

    Portale und interne Werkzeuge mit einem Node-Backend, das Daten prüft, Rechte durchsetzt und Schnittstellen bereitstellt.
  • Leuchtendes Netzwerk aus verbundenen Knotenpunkten

    KI und Automatisierung

    Abläufe, die bisher Handarbeit waren: Daten abholen, umrechnen, weiterreichen, mit Protokoll und Fehlerbehandlung.
  • Serverschrank mit blau leuchtenden Geräten

    Hosting und Wartung

    Wir betreiben Node-Dienste, halten Versionen und Pakete aktuell und merken Ausfälle, bevor jemand anruft.

Häufige Fragen

Ist Node.js eine Programmiersprache?

Nein. Die Sprache ist JavaScript, oft in der typisierten Form TypeScript. Node.js ist die Laufzeitumgebung, die diesen Code außerhalb des Browsers ausführt, so wie der Browser ihn innerhalb der Webseite ausführt.

Was ist der Unterschied zwischen Node.js und JavaScript?

JavaScript ist die Sprache, Node.js ist einer der Orte, an denen sie läuft. Im Browser kümmert sich JavaScript um die Oberfläche, unter Node.js um Server, Schnittstellen und Skripte. Der Code sieht in beiden Welten fast gleich aus.

Was kostet Node.js?

Nichts. Node.js ist quelloffen und kostenlos, ebenso npm und die gängigen Werkzeuge. Kosten entstehen für die Entwicklung, den Server, auf dem der Dienst läuft, und die laufende Pflege.

Was ist npm?

npm ist die Paketverwaltung von Node.js. Über sie holen Entwickler fertige Bausteine ins Projekt, von kleinen Helfern bis zu kompletten Datenbankanbindungen. Mit über zwei Millionen Paketen ist es die größte Sammlung dieser Art.

Ist Node.js sicher?

Die Plattform selbst wird aktiv gepflegt und bekommt regelmäßig Sicherheitsaktualisierungen. Die größere Angriffsfläche sind veraltete Versionen und ungeprüfte npm-Pakete. Ein sicher betriebener Node-Dienst braucht deshalb jemanden, der Versionen und Abhängigkeiten aktuell hält.

Wer nutzt Node.js?

Unter anderem Netflix, PayPal, LinkedIn und eBay, dazu unzählige kleinere Firmen. Auch fast jedes Werkzeug der modernen Webentwicklung läuft auf Node. Wir setzen es bei Akinware seit Jahren für Schnittstellen, Abgleiche und Hintergrunddienste ein.

Brauche ich für Node.js einen besonderen Server?

Klassisches Webhosting reicht meist nicht, weil ein Node-Dienst dauerhaft läuft statt pro Aufruf zu starten. Üblich sind ein kleiner eigener Server, ein Container oder ein Cloud-Anbieter. Die Kosten dafür sind überschaubar und planbar.

Weiterlesen

  • Beleuchtete Tastatur vor zwei Bildschirmen mit Code

    Was ist Strapi?

    Strapi ist ein quelloffenes Headless-CMS, das auf eurem eigenen Server läuft und Inhalte an Webseite, App und andere Systeme liefert. Woher es kommt, wie es funktioniert und wann WordPress trotzdem reicht, verständlich erklärt.
  • Beleuchtete Tastatur vor zwei Bildschirmen mit Code

    Was ist NestJS?

    NestJS gibt Backends in TypeScript eine feste Ordnung: Jedes Projekt ist gleich aufgebaut, und neue Entwickler finden sich schnell zurecht. Was dahinter steckt und wann sich das lohnt, verständlich erklärt.
  • Bildschirm mit farbig hervorgehobenem Quelltext

    Was ist JavaScript?

    JavaScript ist die einzige Programmiersprache, die jeder Browser versteht, und steckt deshalb in praktisch jeder Webseite. Woher die Sprache kommt, was sie kann und wo ihre Grenzen liegen, verständlich erklärt.

Kontakt und kostenlose Beratung

Hände tippen auf einer Laptop-Tastatur, daneben eine Tasse Kaffee
Telefon0208 78015410E-Mailinfo@akinware.com
Adresse
Huyssenstraße 6G, 46119 Oberhausen
Worum geht es