Node.js

Node.js
QS-Informatik

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
Node.js Logo
Entwickler Ryan Lienhart Dahl
Aktuelle Version 0.6
(4. November 2011)
Betriebssystem Linux, Mac OS, Windows, Solaris
Programmier­sprache 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

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

Weblinks

Referenzen

  1. CommonJS Standard. Abgerufen am 15 Mai 2011.
  2. connect.js auf github
  3. express.js
  4. http://search.npmjs.org/ rechts oben
  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. StackVM: Virtuelle Maschinen für die Mitbenutzung auf golem.de
  9. http://browserling.com/
  10. http://www.heise.de/open/meldung/Oscon-Open-Source-Awards-verliehen-1288676.html
  11. 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

Wikimedia Foundation.

Игры ⚽ Поможем написать курсовую

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Node.js — Original author(s) Ryan Lienhart Dahl Developer(s) Node.js Developers …   Wikipedia

  • Node.js — Desarrollador Node.js Developers Inform …   Wikipedia Español

  • Node.js — Тип JavaScript интерпретатор Автор Ryan Lienhart Dahl …   Википедия

  • Node — (n[=o]d), n. [L. nodus; perh. akin to E. knot. Cf. {Noose}, {Nowed}.] 1. A knot, a knob; a protuberance; a swelling. [1913 Webster] 2. Specifically: (a) (Astron.) One of the two points where the orbit of a planet, or comet, intersects the… …   The Collaborative International Dictionary of English

  • Node.js — Développeur Ryan Lienhart Dahl et les développeurs de Node.js …   Wikipédia en Français

  • node — [nəud US noud] n technical [Date: 1300 1400; : Latin; Origin: nodus knot, node ] 1.) the place on the stem of a plant from which a leaf or branch grows 2.) a place where lines in a network cross or join 3.) a part of a computer network where… …   Dictionary of contemporary English

  • node — node. См. узел. (Источник: «Англо русский толковый словарь генетических терминов». Арефьев В.А., Лисовенко Л.А., Москва: Изд во ВНИРО, 1995 г.) …   Молекулярная биология и генетика. Толковый словарь.

  • Node —   [engl.], Knoten …   Universal-Lexikon

  • node — [ noud ] noun count * ▸ 1 where lines cross/meet ▸ 2 small lump in body ▸ 3 where leaf grows ▸ 4 where two parts meet ▸ 5 in computing 1. ) the place where lines cross or meet, for example on a GRAPH 2. ) MEDICAL a small lump in your body 3. )… …   Usage of the words and phrases in modern English

  • node — (n.) early 15c., a knot or lump, from L. nodus knot (see NET (Cf. net) (n.)). Originally borrowed c.1400 in Latin form, meaning lump in the flesh. Meaning point of intersection (originally of planetary orbits with the ecliptic) first recorded… …   Etymology dictionary

  • node — / nodule [n] knot, growth bud, bulge, bump, burl, clot, knob, lump, protuberance, swelling, tumor; concepts 471,831 …   New thesaurus

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”