Zum Inhalt springen

Node.js

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 27. März 2015 um 11:21 Uhr durch MyBenutzername (Diskussion | Beiträge) (Version up). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Node.js

Node.js-Logo
Basisdaten

Entwickler Joyent Inc.
Erscheinungsjahr 27. Mai 2009[1]
Aktuelle Version 0.12.1[2]
(23. März 2015)
Betriebssystem Linux, Mac OS X, Windows, Solaris
Programmier­sprache C++, C, JavaScript
Kategorie Framework, Interpreter
Lizenz MIT-Lizenz[3]
nodejs.org

Node.js ist eine serverseitige Plattform zum Betrieb von Netzwerkanwendungen. Insbesondere lassen sich Webserver damit realisieren. Node.js basiert auf der JavaScript-Laufzeitumgebung „V8“, die ursprünglich für Google Chrome entwickelt wurde, und bietet daher eine ressourcensparende Architektur, die eine besonders große Anzahl gleichzeitig bestehender Netzwerkverbindungen ermöglicht.[4][5][6]

Architektur

Die Programmiersprache 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.

Module

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.[7]

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

Beispiele

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');

Fork

Aufgrund von Unzufriedenheit mit dem Tempo der Weiterentwicklung spaltete sich das Projekt io.js von Node.js ab. Der erste Release erfolgte am 13. Januar 2015. Der Fork ist bisher kompatibel zu Node.js und dem Node Package Manager (npm).[10]

Projekte

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.[24]

Auszeichnungen

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

Literatur

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

Einzelnachweise

  1. node-v0.x-archive on GitHub. (abgerufen am 2. September 2016).
  2. https://github.com/joyent/node/releases
  3. https://github.com/joyent/node/blob/master/LICENSE
  4. http://nodejs.org/about/
  5. Node.js: Das JavaScript-Framework im Überblick
  6. Was ist Node.js?
  7. CommonJS Standard. Abgerufen am 15. Mai 2011.
  8. http://npmjs.org/ npmjs.org npm registry
  9. Module in Node.js
  10. a b Hoffnung für Node.js-Community: io.js 1.0 planmäßig veröffentlicht. heise.de, 14. Januar 2015, abgerufen am 14. Januar 2015.
  11. Wie Etherpad Lite entstand
  12. EtherPad
  13. PDFKit: PDF-Dokumente generieren mit Javascript auf golem.de
  14. Kod: Moderner Code-Editor für Mac OS X
  15. HP WebOS
  16. StackVM: Virtuelle Maschinen für die Mitbenutzung auf golem.de
  17. http://browserling.com/
  18. NodeBB.org
  19. NodeBB – das Node.js Forum
  20. Ghost - Just a blogging platform, ein CMS
  21. Ghost CMS: Endlich ist es da!
  22. Node.js gains a new fork, much to Joyent’s dismay, infoworld.com, abgerufen am 5. Dezember 2014.
  23. io.js – JsWiki.de
  24. Projects, Applications, and Companies Using Node
  25. http://www.heise.de/open/meldung/Oscon-Open-Source-Awards-verliehen-1288676.html
  26. http://www.infoworld.com/d/open-source-software/bossie-awards-2011-the-best-open-source-application-development-software-171759-0&current=9&last=1#slideshowTop