Zum Inhalt springen
Wikipedia Die freie Enzyklopädie

Node.js

aus Wikipedia, der freien Enzyklopädie
Dies ist eine alte Version dieser Seite, zuletzt bearbeitet am 15. Juni 2013 um 10:59 Uhr durch Loki 66 (Diskussion | Beiträge) (Neuere Version erschienen: https://raw.github.com/joyent/node/v0.10.11/ChangeLog). Sie kann sich erheblich von der aktuellen Version unterscheiden.
Node.js
Node.js Logo
Basisdaten
Entwickler Joyent Inc.
Erscheinungsjahr 27. Mai 2009[1]
AktuelleVersion 0.10.11
(13.Juni 2013)
Betriebssystem Linux, Mac OS, Windows, Solaris
Programmier­sprache C++, C, JavaScript
Kategorie Framework, Interpreter
Lizenz MIT-Lizenz
nodejs.org

Node.js ist eine Server-seitige Plattform zum Betrieb von Netzwerkanwendungen. Insbesondere lassen sich Webserver damit realisieren. Node.js basiert auf der JavaScript-Laufzeitumgebung "V8", die ursprünglich für den Chrome-Browser entwickelt wurde und bietet daher eine Ressourcen-sparende Architektur, die eine besonders große Anzahl gleichzeitig bestehender Netzwerkverbindungen ermöglicht.[2]

Architektur

JavaScript gibt eine ereignisgesteuerte Architektur vor, durch die der Programmablauf nicht durch Ein-/Ausgabe-Operationen blockiert wird. Das Ergebnis einer Operation, die in anderen Umgebungen blockieren würde, wird immer als Rückruffunktion (englisch callback) übermittelt. Aus diesem Grund ist das Sperren von Betriebsmitteln nicht erforderlich, und es wird für die gesamte Anwendung nur ein Thread benötigt.

Besonders im Serverbetrieb ist die ereignisgesteuerte Architektur von Vorteil, da ein "Node.js"-Prozess so bei gleichem Arbeitsspeicher-Verbrauch erheblich mehr Verbindungen zur gleichen Zeit aufrechterhalten kann als vergleichbare Anwendungen mit blockierendem Verhalten der Ein-/Ausgabe.

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

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

Beispiele

HTTP-Server-Version eines Hallo-Welt-Programmes in Node.js:

varhttp=require('http');
http.createServer(function(req,res){
res.writeHead(200,{'Content-Type':'text/plain'});
res.write('Hallo Welt');
res.end();
}).listen(8000);


Ein weiteres Beispiel als einfacher TCP-Server, der alle auf dem Port 7000 empfangenen Daten unverändert zum Client zurücksendet:

varnet=require('net');
varserver=net.createServer(function(socket){
socket.setEncoding("utf8");
socket.send("Hallo\r\n");
socket.on('data',function(data){
socket.send(data);
});
socket.on('end',function(){
socket.send("Auf Wiedersehen\r\n");
socket.end();
});
});
server.listen(7000,'localhost');

Projekte

Projekte mit Node.js:

Auszeichnungen

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

Literatur

Einzelnachweise

  1. node-v0.x-archive on GitHub. (abgerufen am 2. September 2016).
  2. http://nodejs.org/about/
  3. CommonJS Standard. Abgerufen am 15. Mai 2011.
  4. http://search.npmjs.org/ npmjs.org npm registry
  5. Wie Etherpad Lite entstand
  6. PDFKit: PDF-Dokumente generieren mit Javascript auf golem.de
  7. Kod: Moderner Code-Editor für Mac OS X
  8. HP WebOS
  9. StackVM: Virtuelle Maschinen für die Mitbenutzung auf golem.de
  10. http://browserling.com/
  11. http://www.heise.de/open/meldung/Oscon-Open-Source-Awards-verliehen-1288676.html
  12. 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
Normdaten(Sachbegriff): GND: 1027030742 (GND Explorer, lobid, OGND , AKS )

AltStyle によって変換されたページ (->オリジナル) /