Dies ist eine alte Version des Dokuments!
LU15a – Was ist ein Backend-Server?
Lernziele
- Sie können erklären, was ein Backend-Server ist.
- Sie können den Backend-Server in der 3-Schichten-Architektur einordnen.
- Sie kennen die Begriffe Node.js, npm, Express, nodemon, Port, API und können sie beschreiben.
- Sie verstehen, warum eine Webapplikation besser auf einem 3-Tier-Modell basiert als auf einem direkten Datenbankzugriff.
3-Tier-Webarchitektur
Die 3-Tier-Architektur teilt eine Webapplikation in drei Schichten:
- Presentation Layer (Frontend) – Oberfläche im Browser oder in einer App
- Application Layer (Backend) – Geschäftslogik, Regeln, Validierung
- Data Layer (Datenbank) – Speichern und Verwalten der Daten
Jede Schicht hat eine klar definierte Aufgabe und spricht nur mit der direkt angrenzenden Schicht. Das bringt Ihnen:
- bessere Sicherheit
- bessere Wartbarkeit
- mehr Flexibilität, wenn die Anwendung wächst
Wichtige Begriffe im Node.js-Ökosystem
| 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. | npm Registry |
| 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. | – |
Warum überhaupt ein Backend-Server?
Bis jetzt haben Sie im Modul M290:
- direkt in WebStorm mit dem Datenbank-Plugin gearbeitet,
- SQL-Statements (inkl. CRUD) direkt auf MySQL ausgeführt.
Das ist ideal zum Lernen von SQL – aber für eine echte Webapplikation nicht geeignet:
- Ein Browser-Frontend sollte nie direkt mit der Datenbank sprechen.
- Die Datenbank soll geschützt im Hintergrund laufen.
- Zwischen Browser und Datenbank braucht es eine Logik-Schicht → Ihren Backend-Server.
3-Schichten-Architektur in unserem Modul
Client (Browser / App) ⇄ Backend-Server (Node.js/Express) ⇄ Datenbank (MySQL)
Vorteile des Backend-Servers:
- Sicherheit
Die Datenbank ist nicht direkt aus dem Internet erreichbar. Der Server entscheidet, welche SQL-Befehle ausgeführt werden.
- Businesslogik & Validierung
Regeln (z.B. Note zwischen 1.0 und 6.0, Geburtsdatum nicht in der Zukunft) werden im Backend implementiert, nicht im Browser.
- Mehrere Frontends möglich
Dieselbe API kann von einer Website, einer Mobile-App oder einem anderen Service genutzt werden.
- Wartbarkeit
Datenbank, Backend-Logik und Frontend können unabhängig voneinander angepasst werden.
Kein Website-Frontend, sondern ein Backend-Server
Wichtig für diese Learning Unit:
- Sie programmieren keine klassische Website mit HTML/CSS/JavaScript im Browser.
- Sie programmieren einen Server, der über HTTP angesprochen wird.
- Der Browser dient hier nur als Client, der eine Anfrage schickt und die Antwort (Text oder JSON) anzeigt.
In den nächsten Seiten erstellen Sie:
- ein neues Node.js/Express-Projekt,
- Ihren ersten kleinen Backend-Server,
- und verstehen den Unterschied zwischen Website und API.
