Node.js
Kurz: Eine JavaScript-Laufzeitumgebung außerhalb des Browsers — macht JavaScript zur vollwertigen Sprache für Server, Skripte und Build-Tools.
Genauer: Node.js nutzt dieselbe V8-JavaScript-Engine wie Chrome, aber ohne Browser-Umgebung, dafür mit Zugriff auf Dateisystem, Netzwerk usw. Ereignisgesteuert und non-blocking (Event Loop statt Threads pro Verbindung), wodurch es viele gleichzeitige Verbindungen effizient handhaben kann. Next.js, npm und praktisch das gesamte moderne JavaScript-Tooling laufen auf Node.js.
Im Detail
Klassische Server-Architekturen (z. B. Apache im klassischen Modus) starten oft einen eigenen Thread oder Prozess pro eingehender Verbindung — bei tausenden gleichzeitigen Verbindungen entsteht dadurch erheblicher Speicher- und Verwaltungsaufwand. Node.js geht einen anderen Weg: ein einzelner Haupt-Thread verarbeitet alle Anfragen über eine Event-Loop, wartende I/O-Operationen (Datenbankabfrage, Datei lesen, Netzwerk-Request) blockieren diesen Thread nicht, sondern werden im Hintergrund an das Betriebssystem delegiert und melden sich per Callback zurück, sobald sie fertig sind.
const fs = require("fs");
fs.readFile("datei.txt", "utf8", (err, data) => {
console.log(data); // läuft asynchron, blockiert den Hauptthread nicht
});
console.log("Diese Zeile läuft VOR dem Dateiinhalt!");Diese Architektur eignet sich hervorragend für I/O-lastige Anwendungen (viele gleichzeitige Netzwerk-/Datenbankverbindungen mit wenig eigener Rechenlast dazwischen), ist aber weniger geeignet für rechenintensive Aufgaben (z. B. komplexe Bildverarbeitung), die den einzelnen Haupt-Thread blockieren und damit ALLE anderen Anfragen währenddessen ausbremsen würden — dafür bietet Node.js separate Worker-Threads oder Auslagerung in andere Prozesse an. npm (Node Package Manager) kommt direkt mit Node.js mit und ist mit weitem Abstand das größte Paket-Ökosystem einer Programmiersprache überhaupt.
Siehe auch: JS, TypeScript