Node.js
- العربية
- Asturianu
- Azərbaycanca
- Беларуская
- Български
- বাংলা
- Català
- کوردی
- Čeština
- Dansk
- Ελληνικά
- English
- Español
- Eesti
- Euskara
- فارسی
- Suomi
- Français
- עברית
- हिन्दी
- Magyar
- Հայերեն
- Bahasa Indonesia
- Italiano
- 日本語
- Qaraqalpaqsha
- 한국어
- Кыргызча
- Lombard
- Latviešu
- മലയാളം
- Bahasa Melayu
- Nederlands
- Norsk bokmål
- Polski
- Português
- Runa Simi
- Română
- Русский
- Simple English
- Shqip
- Српски / srpski
- Svenska
- ไทย
- Türkçe
- Українська
- اردو
- Oʻzbekcha / ўзбекча
- Tiếng Việt
- 閩南語 / Bân-lâm-gí
- 中文
| 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 |
| Programmiersprache | 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
Literatur
- Golo Roden:Node.js & Co. 1. Auflage. dpunkt Verlag, Heidelberg 2012, ISBN 978-3-89864-829-5 .
- Felix Geisendörfer: Wie Node.js JavaScript auf dem Server revolutioniert: Schubrakete für JavaScript, T3N Magazin, 8. Dezember 2010.
- Oliver Ochs:Javascript auf dem Server mit Node, in: JavaScript für Enterprise-Entwickler. 1. Auflage. dpunkt Verlag, Heidelberg 2012, ISBN 978-3-89864-728-1 , S.133ff.
Weblinks
Einzelnachweise
- ↑ node-v0.x-archive on GitHub. (abgerufen am 2. September 2016).
- ↑ http://nodejs.org/about/
- ↑ CommonJS Standard. Abgerufen am 15. Mai 2011.
- ↑ http://search.npmjs.org/ npmjs.org npm registry
- ↑ Wie Etherpad Lite entstand
- ↑ PDFKit: PDF-Dokumente generieren mit Javascript auf golem.de
- ↑ Kod: Moderner Code-Editor für Mac OS X
- ↑ HP WebOS
- ↑ 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