Dies ist eine alte Version des Dokuments!
LU15c – Erster Express-Server mit Node.js
Learning Objectives
- Sie können einen einfachen Express-Server programmieren.
- Sie können den Server über das Terminal starten.
- Sie verstehen den Request-Response-Zyklus (
app.get,res.send). - Sie können erklären, warum dies kein klassisches Website-Frontend, sondern ein Backend-Server / API ist.
- Sie kennen
nodemonund einfachenpm scriptsfür einen komfortablen Entwicklungsablauf.
Unser erster Express-Server
Öffnen Sie die Datei index.js und fügen Sie folgenden Code ein:
import express from 'express'; const app = express(); const port = 3000; // Route für GET-Anfragen auf "/" app.get('/', (req, res) => { res.send('test'); }); // Server starten und auf Port 3000 lauschen app.listen(port, () => { console.log(`Example app listening on port ${port}`); });
Was passiert in diesem Code?
import express from 'express';
Lädt das Express-Framework aus node_modules.
const app = express();
Erstellt eine neue Express-Anwendung – das ist Ihr Serverobjekt.
const port = 3000;
Definiert den Port, auf dem der Server lauscht.
''http://localhost:3000/'' bedeutet: eigener Computer (localhost), Port 3000, Pfad ''/''.
* ''app.get('/', (req, res) => { ... });''
Definiert eine **Route**:
* Wenn eine **GET-Anfrage** an ''/'' kommt,
* führt Express die Callback-Funktion aus.
* ''req'' = Request-Objekt (Infos über Anfrage),
''res'' = Response-Objekt (Antwort, die Sie zurückschicken).
* ''res.send('test');'' → sendet den Text ''test'' als Antwort.
* ''app.listen(port, () => { ... });''
Startet den Server und gibt im Terminal eine kurze Meldung aus.
Server starten und im Browser testen
1. Öffnen Sie in WebStorm das **Terminal** (Projektordner). 2. Starten Sie den Server mit:
node index.js
3. Im Terminal sollte erscheinen: *''Example app listening on port 3000''*
4. Öffnen Sie Ihren Browser und geben Sie ein: ''http://localhost:3000/''
5. Sie sollten nur das Wort **''test''** im Browser sehen.
6. Server stoppen: * Im Terminal ''Strg + C'' (Windows/Linux) oder ''ctrl + C'' (macOS) drücken.
Wichtig: Wir haben keinen „klassischen“ Webauftritt programmiert
Zentrale Idee
Sie haben in dieser Learning Unit kein HTML, kein CSS und kein JavaScript für den Browser geschrieben. Sie haben JavaScript für den Server geschrieben.
- Der Browser spielt hier nur die Rolle eines Clients, der eine Anfrage an Ihren Server sendet.
- Der Express-Server beantwortet diese Anfrage mit einer Antwort (
Response). - Der Browser zeigt einfach an, was im Response-Body steht (in unserem Fall der Text
test).
Später werden Sie:
- statt einfachem Text JSON-Daten zurückgeben,
- mehrere Routen (z.B.
/api/trips,/api/books) definieren, - und diese mit Ihrer MySQL-Datenbank verbinden.
Komfort: npm-Scripts & nodemon
Wenn Sie nach jeder Codeänderung den Server mit node index.js neu starten müssen, ist das mühsam.
Dafür gibt es zwei Hilfsmittel:
npm scriptsinpackage.jsonnodemonfür automatischen Neustart
1. nodemon installieren
Installieren Sie nodemon als Entwicklungsabhängigkeit:
npm install --save-dev nodemon
Dadurch ergänzt npm Ihre package.json um einen Eintrag unter devDependencies für nodemon.
2. Scripts in ''package.json'' ergänzen
Öffnen Sie package.json und ergänzen Sie den Abschnitt scripts wie folgt (Beispiel):
"scripts": {
"start": "node index.js",
"dev": "nodemon index.js"
}
Sie können dann:
- mit
npm startden Server einmalig starten, - mit
npm run devden Server im Entwicklermodus mit automatischem Neustart starten.
Wenn Sie nun in index.js etwas ändern und speichern, startet nodemon den Server automatisch neu.
node_modules & IDE-Hinweise
- Der Ordner
node_modules/kann sehr gross werden.
Er wird von npm automatisch verwaltet und muss nicht manuell bearbeitet werden.
- Für Abgaben (z.B. in Moodle) reicht meist:
- Quellcode-Dateien (z.B.
index.js) package.json(und optionalpackage-lock.json)
- In WebStorm können Sie bei Bedarf die Inlay-Hints (kleine Typ-Hinweise) deaktivieren, wenn diese Sie stören
(Settings → Editor → Inlay Hints).
In den nächsten Learning Units werden Sie:
- weitere Routen in Ihrem Express-Server anlegen,
- Daten nicht nur zurückgeben, sondern auch annehmen (
POST,PUT,DELETE), - Ihre persönlichen Use Cases (z.B. Reisedatenbank, Lieblingsfilme, Geburtstage) mit einer echten MySQL-Datenbank verbinden
und alle CRUD-Operationen über den Backend-Server ausführen.
