Menu

Was ist Node.js? Die JavaScript-Runtime einfach erklärt

Node.js ist eine Runtime, die JavaScript außerhalb des Browsers ausführt, auf Servern und im Terminal. Es ist keine Sprache und kein Framework: Es ist V8 plus eine Event Loop plus APIs für Dateien, Netzwerk und Prozesse.

Diese Seite enthält ausführbare Editoren. Bearbeiten, ausführen und Ausgabe sofort sehen.

Node.js ist eine Runtime, die JavaScript außerhalb des Browsers ausführt: auf einem Server, in einem Terminal oder als Kommandozeilen-Tool. Es ist keine Programmiersprache (die Sprache ist JavaScript) und kein Framework (Express ist ein Framework, das auf Node.js läuft). Es kombiniert die V8-Engine von Google, die JavaScript ausführt, mit einer Event Loop und eingebauten APIs für Dateien, Netzwerk und Prozesse, die Browser nicht haben.

Es hat den Inhalt der Datei ausgegeben, die Major-Version (v24) und undefined für window, weil Node.js keine Webseite hat, die dir eins geben könnte. fs und process gibt es nur in Node.js; führ dieselben Zeilen in einem Browser-Tab aus, und schon die erste wirft einen Fehler.

Ist Node.js ein Framework oder eine Sprache?

Weder noch. JavaScript ist die Sprache. Node.js ist das Programm, das sie ausführt, so wie die JVM Java oder CPython Python ausführt. Frameworks sitzen obendrauf: Express, Fastify und NestJS sind Bibliotheken, die du in ein Node.js-Projekt installierst. Die Seite Node.js vs. JavaScript vergleicht die beiden im Detail.

Unter der Haube besteht Node.js aus vier Teilen:

  • V8, die JavaScript-Engine aus Chrome. Sie macht aus deinem Code Maschinencode und führt ihn aus.
  • libuv, eine C-Bibliothek, die die Event Loop bereitstellt und langsame Arbeit (Festplatte, Netzwerk, Timer) im Hintergrund erledigt und das Ergebnis dann an deine Callbacks zurückgibt.
  • Die eigenen APIs von Node: fs für Dateien, http für Server, path, process, crypto, events und mehr, verfügbar mit require oder import und ohne Installation.
  • npm, der Paketmanager, der mit Node.js kommt und dir Zugang zur größten Paket-Registry aller Sprachen gibt.

Eine Node.js-Datei ausführen

Installier Node.js von der Website (nimm die LTS-Version), prüf es dann in einem Terminal und führ eine Datei aus:

node --version     # prints v24.x.x or similar
node app.js        # runs app.js and exits when it has nothing left to do
node               # with no file: an interactive prompt (the REPL)

Ein Programm endet von selbst, sobald nichts mehr wartet: kein Timer, kein offener Server, kein ausstehendes Lesen einer Datei. Deshalb beendet sich ein Skript, während ein Webserver weiterläuft.

Nicht blockierendes I/O, die Kernidee

Node.js wartet nicht auf langsame Arbeit. Es startet das Lesen einer Datei oder eine Netzwerkanfrage, führt die nächsten Zeilen weiter aus und ruft deine Funktion auf, wenn das Ergebnis bereit ist.

Die beiden console.log-Zeilen nach readFile liefen zuerst, und der Inhalt der Datei kam zuletzt. So bedient ein einziger Node.js-Prozess Tausende Verbindungen: Während eine Anfrage auf die Datenbank wartet, hält die Event Loop die anderen in Bewegung.

Node.js vs. der Browser

BrowserNode.js
LäuftIn einer WebseiteIn einem Terminal oder auf einem Server
Hatwindow, document, das DOM, localStoragefs, process, http, Buffer, require
Globales Objektwindow (und globalThis)global (und globalThis)
Dateien auf der FestplatteKein ZugriffVoller Zugriff, mit den Rechten deines Benutzers
setTimeout, console, fetch, URLJaJa

Wofür Node.js genutzt wird

  • Webserver und APIs: REST- und GraphQL-Backends, oft mit Express.
  • Echtzeit-Apps: Chat, Live-Dashboards und Multiplayer-Spiele über WebSockets, bei denen viele Verbindungen gleichzeitig offen bleiben.
  • Kommandozeilen-Tools: npm selbst, Vite, ESLint, Prettier und der Compiler von TypeScript laufen alle auf Node.js.
  • Skripte und Automatisierung: Dateien umbenennen, APIs aufrufen, Daten migrieren.

Der häufigste Einsatz ist ein HTTP-Server, und für einen ersten reicht das eingebaute Modul http:

Der Server hat GET /hello mit dem Pfad beantwortet, den er bekommen hat. Ändere den Pfad in der Request-Leiste in /anything und sende ihn: Die Antwort zieht mit, weil dieser Server jede URL mit einer einzigen Funktion behandelt.

Wann du Node.js wählst

Wähl Node.js, wenn die Arbeit hauptsächlich aus Warten auf I/O besteht (Anfragen, Datenbanken, Dateien) und du eine Sprache für Frontend und Backend willst. Weniger gut passt es für lange, CPU-lastige Berechnungen wie Video-Encoding oder große numerische Aufgaben, weil eine lange Berechnung den einzigen JavaScript-Thread blockiert und jede andere Anfrage darauf wartet.

Häufig gestellte Fragen

Ist Node.js Frontend oder Backend?

Meistens Backend. Node.js läuft auf einem Server oder deinem eigenen Rechner, nicht im Browser des Besuchers. Frontend-Entwickler nutzen es trotzdem jeden Tag, weil Tools wie npm, Vite und ESLint Node.js-Programme sind.

Wer hat Node.js entwickelt und wann?

Ryan Dahl hat Node.js 2009 veröffentlicht. Heute pflegt es die OpenJS Foundation, mit einer neuen Major-Version alle sechs Monate, wobei gerade Versionsnummern Long-Term Support bekommen.

Muss ich JavaScript können, bevor ich Node.js lerne?

Ja, zumindest die Grundlagen: Variablen, Funktionen, Objekte, Arrays und Callbacks oder Promises. Node.js fügt APIs hinzu, keine neue Syntax, alles, was du über die Sprache lernst, gilt also direkt.

Ist Node.js single-threaded?

Dein JavaScript läuft in einem Thread. Node.js nutzt im Hintergrund einen kleinen Thread-Pool für Dateisystem-Arbeit, DNS und einen Teil von crypto, damit langsames I/O deinen Code nicht blockiert, während es wartet.

Illustration der Programmiersprachen bei Coddy

Lerne mit Coddy zu programmieren

Los geht's