Skip to content

Kapitel 1: Node.js Einführung

🎯 Lernziele

In diesem Kapitel lernen Sie:

  • ✅ Was Node.js ist und warum es wichtig ist
  • ✅ Die Hauptanwendungsbereiche von Node.js
  • ✅ Unterschiede zwischen Node.js und Browser-JavaScript
  • ✅ Vorteile von Node.js (non-blocking I/O, Event-Loop)
  • ✅ Voraussetzungen für das Lernen
  • ✅ Lernpfad planen
  • ✅ Erstes Node.js-Programm schreiben

1.1 Was ist Node.js?

📖 Einfache Definition

Node.js ist eine JavaScript-Laufzeitumgebung, die es ermöglicht, JavaScript außerhalb des Browsers auszuführen (auf dem Server).

🎨 Visuelle Erklärung

Browser-Umgebung              Node.js-Umgebung
┌─────────────┐              ┌─────────────┐
│  HTML       │              │  Server     │
│  CSS        │    + Node    │  Datenbank  │
│  JavaScript │   ═════>   │  Dateisystem │
│  (Frontend) │              │  (Backend)   │
└─────────────┘              └─────────────┘

💡 Wichtige Punkte

  1. Nicht ein Framework - Node.js ist eine Laufzeitumgebung (wie Python oder Java)
  2. Basierend auf Chrome V8 Engine - Gleiche JavaScript-Engine wie Google Chrome
  3. Event-driven & Non-blocking - Perfekt für Echtzeit-Anwendungen

📝 Beispiel

javascript
// In Node.js können Sie Dateien lesen (geht im Browser nicht!)
const fs = require('fs');
const data = fs.readFileSync('datei.txt', 'utf8');
console.log(data);

1.2 Hauptanwendungsbereiche

🎯 Vier Hauptbereiche

BereichBeschreibungBeispiel
Backend-EntwicklungServer-Seite von WebanwendungenREST APIs, Webserver
Schnittstellen (APIs)Datenbereitstellung für FrontendJSON-APIs, GraphQL
Werkzeuge entwickelnCommand-Line-ToolsBuild-Tools, Automatisierung
Full-Stack EntwicklungFrontend + Backend mit JSMERN Stack, MEVN Stack

🌟 Bekannte Unternehmen, die Node.js nutzen

  • Netflix - Videostreaming
  • Uber - Echtzeit-Fahrvermittlung
  • PayPal - Zahlungsabwicklung
  • LinkedIn - Profilmanagement

1.3 Unterschiede

📊 Hauptunterschiede

AspektBrowserNode.js
LaufzeitumgebungBrowser-Engine (V8)V8 Engine + Node-API
Globales Objektwindowglobal
ZugriffsrechteEingeschränkt (Sandbox)Vollzugriff (Dateisystem, Netzwerk)
ModuleES Modules (import/export)CommonJS (require/module.exports)
DOMVerfügbarNicht verfügbar
DateisystemNicht zugänglichVollzugriff (fs-Modul)

💡 Code-Beispiel

javascript
// Im Browser
console.log(window.location.href); // ✅ Funktioniert
console.log(global); // ❌ undefined

// In Node.js
console.log(global); // ✅ Funktioniert
console.log(window); // ❌ ReferenceError

1.4 Vorteile

🚀 Fünf Hauptvorteile

1. Non-blocking I/O (Nicht-blockierende I/O)

javascript
// Blockierend (synchron) - Schlecht
const data = fs.readFileSync('datei.txt'); // Wartet, bis fertig
console.log('Weiter...'); // Erst NACH dem Lesen

// Nicht-blockierend (asynchron) - Gut
fs.readFile('datei.txt', (err, data) => {
  console.log(data);
});
console.log('Weiter...'); // Wird SOFORT ausgeführt

2. Event-Driven (Ereignisgesteuert)

Event Loop:
┌─────────────────────────────────┐
│  Event Queue (Warteschlange)   │
│  ┌─────┐  ┌─────┐  ┌─────┐  │
│  │Req 1│  │Req 2│  │Req 3│  │
│  └─────┘  └─────┘  └─────┘  │
└─────────────────────────────────┘

    Event Loop verarbeitet nacheinander

3. Plattformübergreifend

  • Windows ✅
  • macOS ✅
  • Linux ✅

4. Hohe Performance

  • Single-Threaded, aber hocheffizient
  • Optimal für I/O-intensive Anwendungen

5. Großes Ökosystem (npm)

Über 2 Millionen Pakete verfügbar!


1.5 Voraussetzungen

📚 Benötigte JavaScript-Kenntnisse

Sie sollten mit folgenden Konzepten vertraut sein:

ThemaWichtigkeitBeispiel
Variablen⭐⭐⭐let, const, var
Funktionen⭐⭐⭐Funktionen definieren, Arrow Functions
Objekte⭐⭐⭐Objektliterale, Methoden
Arrays⭐⭐Array-Methoden (map, filter)
Asynchronität⭐⭐⭐Callbacks, Promises, async/await
Module⭐⭐import/export (ES6)

🔍 Kurzer Test

javascript
// Verstehen Sie diesen Code?
const nutzer = {
  name: 'Max',
  gruß: function() {
    return `Hallo, ich bin ${this.name}`;
  }
};

console.log(nutzer.gruß()); // ❓ Was wird ausgegeben?
👉 Klicken Sie hier für die Antwort

Antwort: Hallo, ich bin Max

Wenn Sie das verstehen, sind Sie bereit für Node.js!


1.6 Lernpfad

🗺️ Empfohlener Lernpfad

Phase 1: Grundlagen (Dieses Kapitel)

Phase 2: Core Modules (fs, path, http)

Phase 3: Modularisierung (CommonJS, ES Modules)

Phase 4: Asynchronität (Callbacks, Promises, async/await)

Phase 5: npm & Paketverwaltung

Phase 6: HTTP & Server-Entwicklung

Phase 7: Express.js Framework

Phase 8: Datenbankanbindung

Phase 9: Praxisprojekte

⚠️ Häufige Fehler beim Lernen

  1. Zu schnell voranschreiten - Beherrschen Sie die Grundlagen, bevor Sie Frameworks lernen
  2. Asynchronität vernachlässigen - Das ist das Wichtigste in Node.js!
  3. Nur lesen, nicht programmieren - Schreiben Sie eigenen Code!

1.7 Erstes Programm

🚀 Schritt-für-Schritt

Schritt 1: Überprüfen Sie die Installation

bash
# Öffnen Sie das Terminal (Command Prompt / PowerShell)
node --version
npm --version
❌ Wenn die Befehle nicht funktionieren...

Sie müssen Node.js installieren:

  1. Gehen Sie zu https://nodejs.org
  2. Laden Sie die LTS-Version (Long Term Support) herunter
  3. Installieren Sie sie (einfach dem Installer folgen)
  4. Starten Sie das Terminal neu

Schritt 2: Erstes Programm erstellen

Erstellen Sie eine Datei namens hallo.js:

javascript
// hallo.js
console.log('🎉 Hallo Node.js!');
console.log('Ich lerne gerade Node.js.');
console.log('Das macht Spaß!');

Schritt 3: Programm ausführen

bash
# Im Terminal navigieren Sie zum Ordner mit hallo.js
node hallo.js

Erwartete Ausgabe:

🎉 Hallo Node.js!
Ich lerne gerade Node.js.
Das macht Spaß!

🎉 Glückwunsch!

Sie haben gerade Ihr erstes Node.js-Programm ausgeführt!


📝 Zusammenfassung

In diesem Kapitel haben Sie gelernt:

  • ✅ Node.js ist eine JavaScript-Laufzeitumgebung für Server
  • ✅ Node.js ist nicht blockierend und ereignisgesteuert
  • ✅ Hauptanwendungen: Backend, APIs, Werkzeuge
  • ✅ Unterschiede zu Browser-JavaScript
  • ✅ Ihr erstes Node.js-Programm geschrieben

🎯 Nächste Schritte

Im nächsten Kapitel werden wir:

  • Node.js installieren (falls noch nicht geschehen)
  • Die Entwicklungsumgebung einrichten
  • Mit der Kommandozeile arbeiten

📚 Weiterführende Ressourcen


🎉 Kapitel 1 abgeschlossen! Weiter zu Kapitel 2: Entwicklungsumgebung einrichten

Frei für alle Anfänger