Appearance
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
- Nicht ein Framework - Node.js ist eine Laufzeitumgebung (wie Python oder Java)
- Basierend auf Chrome V8 Engine - Gleiche JavaScript-Engine wie Google Chrome
- 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
| Bereich | Beschreibung | Beispiel |
|---|---|---|
| Backend-Entwicklung | Server-Seite von Webanwendungen | REST APIs, Webserver |
| Schnittstellen (APIs) | Datenbereitstellung für Frontend | JSON-APIs, GraphQL |
| Werkzeuge entwickeln | Command-Line-Tools | Build-Tools, Automatisierung |
| Full-Stack Entwicklung | Frontend + Backend mit JS | MERN Stack, MEVN Stack |
🌟 Bekannte Unternehmen, die Node.js nutzen
- Netflix - Videostreaming
- Uber - Echtzeit-Fahrvermittlung
- PayPal - Zahlungsabwicklung
- LinkedIn - Profilmanagement
1.3 Unterschiede
📊 Hauptunterschiede
| Aspekt | Browser | Node.js |
|---|---|---|
| Laufzeitumgebung | Browser-Engine (V8) | V8 Engine + Node-API |
| Globales Objekt | window | global |
| Zugriffsrechte | Eingeschränkt (Sandbox) | Vollzugriff (Dateisystem, Netzwerk) |
| Module | ES Modules (import/export) | CommonJS (require/module.exports) |
| DOM | Verfügbar | Nicht verfügbar |
| Dateisystem | Nicht zugänglich | Vollzugriff (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); // ❌ ReferenceError1.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ührt2. Event-Driven (Ereignisgesteuert)
Event Loop:
┌─────────────────────────────────┐
│ Event Queue (Warteschlange) │
│ ┌─────┐ ┌─────┐ ┌─────┐ │
│ │Req 1│ │Req 2│ │Req 3│ │
│ └─────┘ └─────┘ └─────┘ │
└─────────────────────────────────┘
↓
Event Loop verarbeitet nacheinander3. 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:
| Thema | Wichtigkeit | Beispiel |
|---|---|---|
| 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
- Zu schnell voranschreiten - Beherrschen Sie die Grundlagen, bevor Sie Frameworks lernen
- Asynchronität vernachlässigen - Das ist das Wichtigste in Node.js!
- 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:
- Gehen Sie zu https://nodejs.org
- Laden Sie die LTS-Version (Long Term Support) herunter
- Installieren Sie sie (einfach dem Installer folgen)
- 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.jsErwartete 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
