Node.js

aus Wikipedia, der freien Enzyklopädie
(Weitergeleitet von NodeJS)
Zur Navigation springen Zur Suche springen
Node.js

Logo
Basisdaten

Entwickler Node.js Foundation
Erscheinungsjahr 27. Mai 2009[1][2]
Aktuelle Version 12.10.0
3. September 2019[3]

10.16.3 (LTS)
15. August 2019[4]

9.11.1
5. April 2018[5]

8.14.0 (LTS)
27. November 2018[6]

6.15.1 (LTS)
3. Dezember 2018[7]

Betriebssystem plattformübergreifend
Programmiersprache C++, C, JavaScript
Kategorie Framework, Interpreter
Lizenz MIT-Lizenz[8]
nodejs.org

Node.js ist eine serverseitige Plattform in der Softwareentwicklung zum Betrieb von Netzwerkanwendungen. Insbesondere lassen sich Webserver damit realisieren. Node.js wird in der JavaScript-Laufzeitumgebung „V8“ ausgeführt, die ursprünglich für Google Chrome entwickelt wurde, und bietet eine ressourcensparende Architektur, die eine besonders große Anzahl gleichzeitig bestehender Netzwerkverbindungen ermöglicht.[9][10][11]

Architektur[Bearbeiten | Quelltext bearbeiten]

Die Skriptsprache JavaScript gibt eine ereignisgesteuerte Architektur vor. Diese hat im Serverbetrieb den Vorteil, pro bestehender Verbindung weniger Arbeitsspeicher zu verbrauchen als bei vergleichbaren Anwendungen, die für jede geöffnete Verbindung einen eigenen Thread starten.

Performance[Bearbeiten | Quelltext bearbeiten]

Node.js wird mit besonderem Fokus auf die Performance entwickelt. So kommt nonblocking I/O statt standardmäßigem blockierendem I/O zum Einsatz.

Dadurch werden Zugriffe auf das Netzwerk oder Dateisystem von Node.js in Threads gestartet, damit diese mit dem Prozessor vergleichbar langsamen Operationen nicht den Ablauf der Anweisungen verlangsamen.

Module[Bearbeiten | Quelltext bearbeiten]

Node.js enthält einige Module, die direkt in das Binärpaket kompiliert wurden. Dazu gehören neben dem Modul für asynchronen Netzwerkzugriff auch Adapter für das Dateisystem, Puffer, Zeitgeber und eine allgemein gehaltene Datenstrom-Klasse.

Darüber hinaus können zusätzliche Module eingebunden werden, zum Beispiel über vorkompilierte Dateien mit der Dateiendung .node oder in Form einfacher JavaScript-Dateien. Die JavaScript-Module folgen der CommonJS-Konvention, einem Standard für JavaScript-Systeme, die außerhalb von Browsern betrieben werden, und stellen somit über eine Variable namens exports Zugriff auf Funktionen und Variablen des entsprechenden Moduls her.[12]

Zur Verwaltung der Module gibt es den Paketmanager npm, in dessen Depot sich über 751.000 Pakete (Juli 2018) befinden.[13] Dieser sorgt, unter Berücksichtigung von Abhängigkeiten, für die Installation, Aktualisierung und das Kompilieren von Binärmodulen.[14]

Beispiele[Bearbeiten | Quelltext bearbeiten]

HTTP-Server-Version eines Hallo-Welt-Programmes in Node.js, das text/html als Content-Type-Header und den Port 3000 verwendet:

var http = require('http');

http.createServer(function (req, res) {
  res.writeHead(200, {
    'Content-Type': 'text/html'
  });
  res.write('Hallo Welt');
  res.end();
}).listen(3000);

Als weiteres Beispiel ein einfacher TCP-Server, der auf Port 7000 Daten empfängt und mit „Hallo“ antwortet und dann alle empfangenen Daten unverändert zum Client zurücksendet:

var net = require('net');
var endOfLine = require('os').EOL;

var server = net.createServer(function (socket) {
  socket.setEncoding('utf8');

  socket.write('Hallo' + endOfLine);

  socket.pipe(socket, {
    end: false
  });

  socket.on('end', function () {
    socket.end('Auf Wiedersehen' + endOfLine);
  });
});

server.listen(7000, 'localhost');

Ehemaliger Fork „io.js“[Bearbeiten | Quelltext bearbeiten]

Aufgrund von Unzufriedenheit mit dem Tempo der Weiterentwicklung spaltete sich das Projekt io.js von Node.js ab, in dem einige der wichtigsten Node.js-Entwickler weiterarbeiteten, die mit dem Mutterprojekt unzufrieden waren.[15][16] Das erste Release wurde am 13. Januar 2015 freigegeben. Der Fork ist kompatibel zu Node.js und dem Node Package Manager.[17] Am 15. Mai 2015 verkündeten beide Projekte die Zusammenführung zur Node.js-Foundation, die eine gemeinsame Weiterentwicklung unter einem Open-Government-Modell ermöglichen soll.[18][19] Die Zusammenführung wurde mit dem Erscheinen von Node.js 4.0 abgeschlossen.[20]

Versionen[Bearbeiten | Quelltext bearbeiten]

Neue Hauptversionen werden alle sechs Monate veröffentlicht. Mit geraden Nummern versehende Versionen werden im April veröffentlicht, mit ungeraden Nummern versehene im Oktober. Wenn eine neue ungerade Versionsnummer veröffentlicht wird, wechselt die vorige gerade in den LTS-Zustand (Long Term Support) und wird zunächst weitere 18 Monate aktiv gepflegt und anschließend weitere 12 Monate nur noch gewartet.

Version Codename Veröffentlichung LTS-Status Start aktives LTS Start Wartung Ende Wartung
Ältere Version; nicht mehr unterstützt: v0.10.x 2013-03-11 Ältere Version; nicht mehr unterstützt: eingestellt - 2015-10-01 2016-10-31
Ältere Version; nicht mehr unterstützt: v0.12.x 2015-02-06 Ältere Version; nicht mehr unterstützt: eingestellt - 2016-04-01 2016-12-31
Ältere Version; nicht mehr unterstützt: 4.x Argon[21] 2015-09-08 Ältere Version; nicht mehr unterstützt: eingestellt 2015-10-01 2017-04-01 2018-04-30
Ältere Version; nicht mehr unterstützt: 5.x 2015-10-29 kein LTS N/A 2016-06-30
Ältere Version; nicht mehr unterstützt: 6.x Boron[21] 2016-04-26 Ältere Version; nicht mehr unterstützt: eingestellt 2016-10-18 2018-04-30 2019-04-30
Ältere Version; nicht mehr unterstützt: 7.x 2016-10-25 kein LTS N/A 2017-06-30
Ältere Version; noch unterstützt: 8.x Carbon[21] 2017-05-30 Ältere Version; noch unterstützt: Wartung 2017-10-31 2019-01-01[22] 2019-12-31
Ältere Version; nicht mehr unterstützt: 9.x 2017-10-01 kein LTS N/A 2018-06-30
Ältere Version; noch unterstützt: 10.x Dubnium[21] 2018-04-24 Aktuelle Version: Aktiv 2018-10-30 2020-04-01 2021-04-01
Ältere Version; nicht mehr unterstützt: 11.x 2018-10-23 kein LTS N/A 2019-06-01
Aktuelle Version: 12.x Erbium[21] 2019-04-23 Zukünftige Version: zukünftig 2019-10-22 2021-04-01 2022-04-01

Projekte[Bearbeiten | Quelltext bearbeiten]

Eine Liste von ausgewählten Projekten, die auf Node.js basieren:

Darüber hinaus enthält das offizielle Node.js-Wiki eine Liste von Projekten, Anwendungen und Unternehmen, die Node.js einsetzen.[33]

Auszeichnungen[Bearbeiten | Quelltext bearbeiten]

  • Im Juli 2011 wurde Node.js-Entwickler Ryan Dahl auf der Konferenz Oscon einer der O’Reilly Open Source Awards verliehen.[34]
  • InfoWorld hat Node.js im August 2011 mit dem Bossie Award für beste Open-Source-Software in der Kategorie „Entwicklertools“ ausgezeichnet.[35]

Literatur[Bearbeiten | Quelltext bearbeiten]

Weblinks[Bearbeiten | Quelltext bearbeiten]

 Commons: Node.js – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise[Bearbeiten | Quelltext bearbeiten]

  1. node-v0.x-archive on GitHub.
  2. (abgerufen am 2. September 2016).
  3. Änderungsprotokoll 12.10.0. In: GitHub. Abgerufen am 3. September 2019 (englisch).
  4. Änderungsprotokoll 10.16.3. In: GitHub. Abgerufen am 15. Mai 2019 (englisch).
  5. Änderungsprotokoll 9.11.1. In: GitHub. Abgerufen am 3. Mai 2018 (englisch).
  6. Änderungsprotokoll 8.14.0. In: GitHub. Abgerufen am 10. Dezember 2018 (englisch).
  7. Änderungsprotokoll 6.15.1. In: GitHub. Abgerufen am 10. Dezember 2018 (englisch).
  8. github.com
  9. nodejs.org
  10. Node.js: Das JavaScript-Framework im Überblick
  11. Was ist Node.js?
  12. Getting CommonJS (Memento vom 21. Februar 2014 im Internet Archive) (englisch).
  13. npmjs.com npmjs.com npm registry
  14. Module in Node.js
  15. Node.js gains a new fork, much to Joyent’s dismay, infoworld.com, abgerufen am 5. Dezember 2014.
  16. io.js – JsWiki.de
  17. Golo Roden: Hoffnung für Node.js-Community: io.js 1.0 planmäßig veröffentlicht. In: Heise online. 14. Januar 2015, abgerufen am 10. März 2016.
  18. Node.js and io.js leaders are building an open, neutral Node.js Foundation to support the future of the platform. nodejs.org, 15. Mai 2015, abgerufen am 17. Juni 2015.
  19. io.js Week of May 15th (io.js decides to join the Node Foundation). iojs.org, 15. Mai 2015, abgerufen am 17. Juni 2015.
  20. Node.js Foundation: Node v4.0.0 (Stable). 8. September 2015, abgerufen am 9. September 2015 (englisch).
  21. a b c d e Übersicht der Node.js-Versionen auf GitHub. Abgerufen am 25. September 2019.
  22. Node 8 reschedule. Abgerufen am 22. Januar 2019.
  23. Wie Etherpad Lite entstand
  24. EtherPad
  25. PDFKit: PDF-Dokumente generieren mit JavaScript auf golem.de
  26. Introducing HP webOS 2.1 (Memento vom 19. März 2011 im Internet Archive) (englisch).
  27. StackVM: Virtuelle Maschinen für die Mitbenutzung auf golem.de
  28. browserling.com
  29. NodeBB.org
  30. NodeBB – das Node.js Forum
  31. Ghost – Just a blogging platform, ein CMS
  32. Ghost CMS: Endlich ist es da! (Memento des Originals vom 19. Dezember 2013 im Internet Archive) i Info: Der Archivlink wurde automatisch eingesetzt und noch nicht geprüft. Bitte prüfe Original- und Archivlink gemäß Anleitung und entferne dann diesen Hinweis.@1@2Vorlage:Webachiv/IABot/t3n.de
  33. Projects, Applications, and Companies Using Node. In: nodejs/node-v0.x-archive. GitHub, 25. März 2016, abgerufen am 29. Dezember 2016 (englisch).
  34. Andrea Müller: Oscon: Open Source Awards verliehen. In: Heise online. 29. Juli 2011, abgerufen am 10. März 2016.
  35. Bossie Awards 2011: The best open source application development software. InfoWorld's Test Center picks the best open source development tools of 2011 (Memento vom 29. Juli 2014 im Internet Archive) (englisch).