3. Hinter den Kulissen
• Core entwickelt mit C/C++
• Google V8 Engine
• libev (Event-Loop)
http://software.schmorp.de/pkg/libev.html
• libeio (Event-based asynchronous I/O Library für C)
http://software.schmorp.de/pkg/libeio.html
• “Restlicher” Code in JavaScript
4. Bestehend aus…
• Core-Engine (V8, libev, libeio)
• Core-Modules / APIs (HTTP, net, …)
• Community-Created Modules, 3rd Party Modules
• z.B. mongoose als ORM
5. Information Overload zu node.js
• Event-driven, non blocking I/O model
• Event-Loops
• Callbacks auf I/O Requests
• Alles in node.js läuft in einem Single-Thread
• Aufbau von schnellen und skalierbaren Netzwerkanwendungen
• Fokus liegt auf Performance
• Tausende, gleichzeitige Verbindungen meistens kein Problem
• Minimaler Overhead (CPU / Speicher)
• Lauffähig unter Mac, Linux, … Windows ;-)
• Aktive Community
6. NPM
Node Package Manager
• Online Repository für node.js Projekte
-> https://www.npmjs.org/
• Command-Line-Utility für
• Paketinstallation
• Version Management
• Dependency Management
• Aktuell 91.561 Pakete (Stand 29. August 2014)
7. Wozu das Ganze?
• Webanwendungen
• Netzwerk Server (HTTP, Messaging, …)
• API Backends
• Real Time Anwendungen
• AdServer
• Streaming
• Bots / Crawler / …