Die 3-Tier-Architektur teilt eine Webapplikation in drei Schichten:
Jede Schicht hat eine klar definierte Aufgabe und spricht nur mit der direkt angrenzenden Schicht. Vorteile von einer 3-Tier-Architektur:
| Begriff | Kurz erklärt | Wofür brauchen wir es im Modul? | Download / Link |
|---|---|---|---|
| Node.js | JavaScript-Laufzeitumgebung, mit der Sie JavaScript ausserhalb des Browsers ausführen (z.B. auf dem Server). | Läuft als Basis für Ihren Backend-Server; ohne Node kann Ihr Express-Server nicht starten. | Node.js Download (LTS) |
| npm | Node Package Manager: Standard-Paketmanager für Node.js. Installiert zusätzliche Bibliotheken (Packages). | Sie installieren damit z.B. Express und nodemon und verwalten Abhängigkeiten im Projekt. | - |
| Express | Minimalistisches Web-Framework für Node.js, um HTTP-Server und APIs zu bauen. | Sie programmieren damit Ihre REST-API (Routen, Request/Response, Status-Codes). | Express-Dokumentation / GitHub |
| nodemon | Tool, das den Node-Server automatisch neu startet, wenn sich Dateien ändern. | Komfort im Unterricht: Kein manuelles node index.js nach jeder Code-Änderung nötig. | nodemon auf GitHub |
| Port | „Türnummer“ auf einem Computer, über die ein Dienst erreichbar ist (z.B. 3000, 8080, 80). | Ihr Server lauscht standardmässig auf Port 3000 → Browser: http://localhost:3000/. | – |
| API | Application Programming Interface – Schnittstelle, über die Software miteinander spricht. | Ihr Express-Server stellt eine HTTP-API bereit: z.B. GET /api/books liefert Daten zurück. | – |
Bis jetzt haben Sie im Modul M290 vor allem mit der Datenbank gearbeitet:
MySQL geschickt.Für eine richtige Webapplikation, die viele Benutzerinnen und Benutzer über das Internet nutzen, ist dieser direkte Zugriff jedoch nicht sinnvoll und auch nicht sicher.
Stellen Sie sich vor:
MySQL aufbauen.Das führt zu mehreren Problemen:
Statt den Browser direkt mit der Datenbank sprechen zu lassen, schalten wir eine Zwischenschicht dazwischen: den Backend-Server.
3-Schichten-Architektur in unserem Modul
Client (Browser / Postman) ⇄ Backend-Server (Node.js/Express) ⇄ Datenbank (MySQL)
GET /api/books).1. Sicherheit
AppUser mit klar definierten Rechten).2. Businesslogik & Validierung
Note muss zwischen 1.0 und 6.0 liegen,Geburtsdatum darf nicht in der Zukunft liegen,Eine Bewertung darf nur 1–5 Sterne haben.
(z.B. POST /api/trips oder GET /api/books).
3. Einheitliche Schnittstelle (API)
/api/trips, /api/songs).4. Bessere Wartbarkeit & Erweiterbarkeit
ohne dass direkt SQL im Frontend geändert werden muss.
In dieser Phase des Moduls gehen wir den nächsten Schritt:
SELECT/UPDATE/DELETE/CREATE mehr direkt in WebStorm an die Datenbank,