Node.js ist eine Plattform für die Entwicklung eigenständiger JavaScript-Programme, die unabhängig von Host-Anwendungen wie Webbrowser laufen. Mit ihr lassen sich unter anderem serverseitige Skripte, Netzwerktools und WebApps programmieren.
Unter dem Schlagwort „JavaScript everywhere“ soll Node.js die Webentwicklung vereinheitlichen.
(Bild: nodejs.org / OpenJS)
Geschichte und Motivation
Ursprünglich war JavaScript nur als eingebundene Skriptsprache für Webbrowser und andere Anwendungen konzipiert. Unter dem Schlagwort „JavaScript everywhere“ will Node.js die Webentwicklung vereinheitlichen, indem es die Sprache auch für serverseitige Programmierung bereitstellt.
Node.js wurde 2009 von dem Programmierer Ryan Dahl entwickelt. Er war unzufrieden mit der ineffizienten Art und Weise, wie Webanwendungen auf Basis von Apache und PHP viele gleichzeitige Verbindungen handhaben. Schlussendlich entschied er sich dazu, JavaScript für serverseitige Programmierung einzusetzen, da ihm das asynchrone Event-System der Sprache gefiel. Damit konnte er ohne komplizierte Multi-Threading-Architekturen eine große Anzahl von Ein-/Ausgabe-Funktionen parallel und effizient ausführen.
Im Jahr 2012 übergab Dahl die Leitung an einen Mitarbeiter, um sich anderen Projekten zuzuwenden. Seit 2019 ist die OpenJS Foundation verantwortlich für die Weiterentwicklung. Sie veröffentlicht alle sechs Monate eine neue Version, normalerweise im April und Oktober. Einmal pro Jahr erscheint eine Version mit Long-Term-Support, die bis zu 30 Monate gepflegt wird. Node.js ist eine vollständig freie Open-Source-Software und steht unter der MIT-Lizenz.
Funktionsweise von Node.js
Node.js basiert auf Googles JavaScript-Engine V8, die auch im Webbrowser Chrome zum Einsatz kommt. V8 ist eine prozessbasierte virtuelle Maschine, die mithilfe eines JIT-Compilers den JavaScript-Code zur Laufzeit in die Maschinensprache der unterliegenden Hardware übersetzt. Just-In-Time-Compiler unterstützen nicht nur viele der statischen Optimierungen üblicher Ahead-Of-Time-Compiler. Da sie den Code während der Programmausführung übersetzen, können sie den Code dynamisch optimieren.
Anders als viele serverseitige Sprachen wie PHP nutzt Node.js „non-blocking I/O“. Dabei müssen Programme nicht auf die Rückkehr von Ein-/Ausgabe-Funktionen warten. Mithilfe von Callback-Funktionen benachrichtigen sie die aufrufende Funktion über ihre Beendigung und ermöglichen so eine asynchrone und parallele Ausführung. Dadurch lassen sich viele gleichzeitige Client-Anfragen schneller und flüssiger abarbeiten.
Node.js lässt sich mit Modulen beliebig erweitern. Der Node Package Manager, kurz npm, kann Module samt ihrer Abhängigkeiten suchen, installieren, entfernen, kompilieren und aktualisieren. Im Oktober 2020 befanden sich bereits über eine Million Pakete im Node.js-Repository. Module können nicht nur in JavaScript geschrieben werden. Mithilfe der N-API lassen sich binäre Pakete in C/C++ und kompatiblen Sprachen programmieren. Ebenso ist es möglich, externe Bibliotheken (DLL, SO, DYLIB) über ein Foreign Function Interface (FFI) zu laden. Darüber hinaus unterstützt Node.js WebAssembly-Module.
Einsatzbereiche von Node.js
Obwohl Node.js vor allem für Serverprogramme und Netzwerk-Tools zum Einsatz kommt, ist die Plattform nicht darauf beschränkt. Neben Netzwerk-orientierten Kommandozeilen-Tools sind auch allgemeine Werkzeuge für die Systemadministration möglich. Mithilfe von Modulen wie node-ncurses oder drawille lassen sich Vollbild-Terminal-Programme wie den Systemmonitor vtop programmieren.
Node.js kann als Backend für Webanwendungen wie Content-Management-Systeme oder Foren dienen, aber auch für WebApps und Desktop-Applikation. Unter anderem basiert das Framework Electron auf der Kombination Chromium und Node.js. Mit Electron wurden einige bekannte Desktop-Anwendungen entwickelt. Dazu zählen die Code-Editoren Atom und Visual Studio Code, Microsoft Teams sowie die Messenger Signal und Skype.
Auch klassisch aufgebaute Desktop-Anwendungen, die nicht der WebApp-Architektur folgen, sind mit Node.js möglich. Mit dem Modul NodeGUI lassen sich grafische Oberflächen auf Basis des GUI-Frameworks Qt5 programmieren. Für Spiele und 3D-Grafiken gibt es Pakete wie nodegl und sdl2-link.
Stand: 08.12.2025
Es ist für uns eine Selbstverständlichkeit, dass wir verantwortungsvoll mit Ihren personenbezogenen Daten umgehen. Sofern wir personenbezogene Daten von Ihnen erheben, verarbeiten wir diese unter Beachtung der geltenden Datenschutzvorschriften. Detaillierte Informationen finden Sie in unserer Datenschutzerklärung.
Einwilligung in die Verwendung von Daten zu Werbezwecken
Ich bin damit einverstanden, dass die Vogel IT-Medien GmbH, Max-Josef-Metzger-Straße 21, 86157 Augsburg, einschließlich aller mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen (im weiteren: Vogel Communications Group) meine E-Mail-Adresse für die Zusendung von Newslettern und Werbung nutzt. Auflistungen der jeweils zugehörigen Unternehmen können hier abgerufen werden.
Der Newsletterinhalt erstreckt sich dabei auf Produkte und Dienstleistungen aller zuvor genannten Unternehmen, darunter beispielsweise Fachzeitschriften und Fachbücher, Veranstaltungen und Messen sowie veranstaltungsbezogene Produkte und Dienstleistungen, Print- und Digital-Mediaangebote und Services wie weitere (redaktionelle) Newsletter, Gewinnspiele, Lead-Kampagnen, Marktforschung im Online- und Offline-Bereich, fachspezifische Webportale und E-Learning-Angebote. Wenn auch meine persönliche Telefonnummer erhoben wurde, darf diese für die Unterbreitung von Angeboten der vorgenannten Produkte und Dienstleistungen der vorgenannten Unternehmen und Marktforschung genutzt werden.
Meine Einwilligung umfasst zudem die Verarbeitung meiner E-Mail-Adresse und Telefonnummer für den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern wie z.B. LinkedIN, Google und Meta. Hierfür darf die Vogel Communications Group die genannten Daten gehasht an Werbepartner übermitteln, die diese Daten dann nutzen, um feststellen zu können, ob ich ebenfalls Mitglied auf den besagten Werbepartnerportalen bin. Die Vogel Communications Group nutzt diese Funktion zu Zwecken des Retargeting (Upselling, Crossselling und Kundenbindung), der Generierung von sog. Lookalike Audiences zur Neukundengewinnung und als Ausschlussgrundlage für laufende Werbekampagnen. Weitere Informationen kann ich dem Abschnitt „Datenabgleich zu Marketingzwecken“ in der Datenschutzerklärung entnehmen.
Falls ich im Internet auf Portalen der Vogel Communications Group einschließlich deren mit ihr im Sinne der §§ 15 ff. AktG verbundenen Unternehmen geschützte Inhalte abrufe, muss ich mich mit weiteren Daten für den Zugang zu diesen Inhalten registrieren. Im Gegenzug für diesen gebührenlosen Zugang zu redaktionellen Inhalten dürfen meine Daten im Sinne dieser Einwilligung für die hier genannten Zwecke verwendet werden. Dies gilt nicht für den Datenabgleich zu Marketingzwecken.
Recht auf Widerruf
Mir ist bewusst, dass ich diese Einwilligung jederzeit für die Zukunft widerrufen kann. Durch meinen Widerruf wird die Rechtmäßigkeit der aufgrund meiner Einwilligung bis zum Widerruf erfolgten Verarbeitung nicht berührt. Um meinen Widerruf zu erklären, kann ich als eine Möglichkeit das unter https://contact.vogel.de abrufbare Kontaktformular nutzen. Sofern ich einzelne von mir abonnierte Newsletter nicht mehr erhalten möchte, kann ich darüber hinaus auch den am Ende eines Newsletters eingebundenen Abmeldelink anklicken. Weitere Informationen zu meinem Widerrufsrecht und dessen Ausübung sowie zu den Folgen meines Widerrufs finde ich in der Datenschutzerklärung.