Node.js

{{heroImg}} logo
Node.js ist eine plattformübergreifende, Open-Source JavaScript-Laufzeitumgebung, die JavaScript-Code außerhalb eines Webbrowsers ausführt. Es ermöglicht die Entwicklung von skalierbaren Netzwerkanwendungen und Server-seitigen Anwendungen mit JavaScript.

Was ist Node.js?

Node.js erweitert die Möglichkeiten von JavaScript über den Browser hinaus und ermöglicht die Entwicklung von Server-Anwendungen. Es basiert auf der V8 JavaScript-Engine von Google und bietet eine ereignisgesteuerte, nicht-blockierende I/O-Architektur.

Grundlegende Konzepte

  • Ereignisgesteuerte Architektur für effiziente Verarbeitung
  • Nicht-blockierendes I/O für bessere Performance
  • Single-Thread-Event-Loop für Parallelverarbeitung
  • Modulares System mit npm Paketmanager
  • Plattformübergreifende Kompatibilität

Code-Beispiele

Einfacher HTTP-Server

const http = require('http');

const server = http.createServer((req, res) => {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hallo Welt\n');
});

server.listen(3000, () => {
    console.log('Server läuft auf Port 3000');
});

Asynchrone Dateiverarbeitung

const fs = require('fs');

fs.readFile('datei.txt', 'utf8', (err, data) => {
    if (err) {
        console.error('Fehler beim Lesen:', err);
        return;
    }
    console.log('Dateiinhalt:', data);
});

Einsatzgebiete

  • Entwicklung von REST-APIs
  • Echtzeit-Anwendungen mit WebSocket
  • Microservices-Architekturen
  • Command-Line-Tools und Utilities
  • Backend für Web-Anwendungen

Entwicklungstools

  • npm (Node Package Manager) für Paketmanagement
  • nvm (Node Version Manager) für Versionsverwaltung
  • Integrierte Debugging-Tools
  • Testing-Frameworks wie Jest und Mocha
  • Process Manager (PM2) für Produktionsumgebungen

Performance-Features

  • Asynchrone Verarbeitung für bessere Skalierbarkeit
  • Cluster-Modus für Mehrprozessor-Systeme
  • Stream-Verarbeitung für große Datenmengen
  • Buffer-API für binäre Daten
  • Worker Threads für CPU-intensive Aufgaben

Verwandte Begriffe