- Node.js
-
Dieser Artikel wurde aufgrund von inhaltlichen Mängeln auf der Qualitätssicherungsseite der Redaktion Informatik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Informatik auf ein akzeptables Niveau zu bringen. Hilf mit, die inhaltlichen Mängel dieses Artikels zu beseitigen und beteilige dich an der Diskussion! (+)
Node.js Entwickler Ryan Lienhart Dahl Aktuelle Version 0.6
(4. November 2011)Betriebssystem Linux, Mac OS, Windows, Solaris Programmiersprache C++, JavaScript Kategorie Framework Lizenz MIT-Lizenz nodejs.org Node.js ist ein serverseitiges JavaScript-Framework zum Erstellen von Server- und Konsolenanwendungen. Es setzt mit der JavaScript-Engine V8 von Google eine sehr schnelle JavaScript-Implementierung ein, die den Code vor der Ausführung in Maschinencode umwandelt.
Node.js hat einen schlanken Kern und lässt sich über Module erweitern. Eine Besonderheit ist die ereignisgesteuerte Architektur, durch die der Programmablauf nicht durch Ein-/Ausgabeoperationen (zum Beispiel Datenbankzugriffe) blockiert wird. Das Ergebnis einer Operation, die in anderen Umgebungen blockieren würde, wird immer als Rückruffunktion (Callback) übermittelt. Aus diesem Grund wird nur ein Thread benötigt, wodurch auch kein Locking nötig ist und Race Conditions vermieden werden.
Inhaltsverzeichnis
Module
Node.js enthält einige Basismodule (Core), welche direkt in das Binärpaket kompiliert wurden. Dazu gehören neben dem Net-Modul für asynchronen Netzwerkzugriff auch Wrapper für das Dateisystem, Buffer, Timer und eine allgemein gehaltene Stream-Klasse. Module von Drittanbietern können ebenfalls benutzt werden, zum Beispiel über vorkompilierte Dateien mit der Dateinamenerweiterung .node oder in Form von einfachen JavaScript-Dateien. Die JavaScript-Module folgen dem CommonJS-Standard für Module und stellen somit über eine exports-Variable Zugriff auf Funktionen und Variablen des entsprechenden Moduls her.[1]
Über Module lassen sich auch Abstraktionsschichten anlegen, wie zum Beispiel bei den Middleware-Frameworks connect oder express.[2][3]
Zur Verwaltung der Module gibt es den Paketmanager npm, in dessen Repository sich über 4000 Pakete befinden[4]. Dieser sorgt ähnlich wie RubyGems oder Python Eggs für die Installation von Abhängigkeiten, Updates und das Kompilieren von Binärmodulen.
Beispiele
HTTP-Server-Version eines Hallo-Welt-Programmes in Node.js:
var sys = require('sys'), http = require('http'); http.createServer(function (req, res) { res.writeHead(200, {'Content-Type': 'text/plain'}); res.write('Hello World'); res.close(); }).listen(8000); sys.puts('Server running at http://127.0.0.1:8000/');
Ein weiteres Beispiel als einfacher TCP Server, der alle auf dem Port 7000 empfangenen Daten unverändert zum Client zurücksendet:var tcp = require('tcp'); var server = tcp.createServer(function (socket) { socket.setEncoding("utf8"); socket.addListener("connect", function () { socket.send("hello\r\n"); }); socket.addListener("receive", function (data) { socket.send(data); }); socket.addListener("eof", function () { socket.send("goodbye\r\n"); socket.close(); }); }); server.listen(7000, "localhost");
Projekte mit Node.js
- EtherPad Lite[5]
- PDFKit[6]
- Kod, Editor für Mac OS X[7]
- WebOS von HP
- StackVM[8], darauf aufbauend browserling[9] (Cross-Browser-Testen im Browser)
Auszeichnungen
Im Juli 2011 wurde Node.js auf der Oscon der O'Reilly Open Source Awards verliehen.[10] Von InfoWorld wurde Node.js im August 2011 mit dem Bossie Awards für beste Open-Source-Software in der Kategorie „Entwicklertools“ ausgezeichnet.[11]
Literatur
- Felix Geisendörfer: Wie Node.js JavaScript auf dem Server revolutioniert: Schubrakete für JavaScript, T3N Magazin, 8. Dezember 2010.
Weblinks
- Webseite des Projektes node.js
- Webseite der Paketverwaltung npm
- Bericht über Node.js auf Chaosradio Express
Referenzen
- ↑ CommonJS Standard. Abgerufen am 15 Mai 2011.
- ↑ connect.js auf github
- ↑ express.js
- ↑ http://search.npmjs.org/ rechts oben
- ↑ Wie Etherpad Lite entstand
- ↑ PDFKit: PDF-Dokumente generieren mit Javascript auf golem.de
- ↑ Kod: Moderner Code-Editor für Mac OS X
- ↑ StackVM: Virtuelle Maschinen für die Mitbenutzung auf golem.de
- ↑ http://browserling.com/
- ↑ http://www.heise.de/open/meldung/Oscon-Open-Source-Awards-verliehen-1288676.html
- ↑ http://www.infoworld.com/d/open-source-software/bossie-awards-2011-the-best-open-source-application-development-software-171759-0¤t=9&last=1#slideshowTop
Wikimedia Foundation.