====== LU03.A02/L02 - Datenmanagement mit Node-Server ======
- Programmierung eines Node.js Webservers, der mittels GET ein Liste von Namen mittels ausgibt.
- Programmierung eines Node.js Webservers, der in eine Liste einen Namen mittels POST hinzufügt.
===== Rahmenbedingungen =====
* Sozialform: individual
* Hilfsmittel: Node-Webserver als JavaScript-Code
* Zeit: 20 Minuten
* Erwartetes Resultat: Node-Server, der abgefragte Daten am Monitor/Browser ausgibt und Daten im Array ergänzen kann.
===== Ausgangslage =====
Wir haben die Grundfunktionen eine Webservers in der letzten Aufgabe kennen gelernt. Nun wollen wir speziefischer werden und die Methoden POST und GET gezielt anwenden.
**Hinweis:** Um diesen zu Programmieren, nutzen wir hierfür das JavaScript-Framework Express, welches in der Branche Standard ist.
===== Vorarbeit =====
- Installieren Sie im Visual Studio Code das Framework "express" in ihr Visual Studio Code durch die nachfolgenden zwei Codezeilen.
- npm init -y: package.json-Datei wird erstellt, dass alle Abhängigkeiten des Projektes verwaltet.
- npm install express: Installation des express-Frameworks mit wichtigen Funktionen/Tools des Servers
==== Projekt-Abhängigkeiten verwalten ====
npm init -y
**Ergebnis**
Das Ergebnis im Terminalfenster von Visual Studio Code sollte wie folgt aussehen.
{{:de:modul:m307:learningunits:lu03:aufgaben:npm-init-y.png?600|}}
==== Framework express installieren ====
npm install express
**Ergebnis**
Das Ergebnis im Terminalfenster von Visual Studio Code sollte wie folgt aussehen.
{{:de:modul:m307:learningunits:lu03:aufgaben:installiertexpress.png?600|}}
===== Aufgabe =====
- Kopieren Sie die nachfolgende JS-Vorlage in Ihre Visual Studio Code (Filename lu03_a02.js)
- Starten Sie den Server
- Fragen Sie die Liste der Namen ab durch z.B. die URL: http://localhost:3000/users
- Fügen Sie in die Liste Namen hinzu durch z.B. die URL: http://localhost:3000/add/Lukas
- Prüfen Sie durch erneute Abfrage der List, ob Sie erfolgreich einen Namen anhängen konnten.
const express = require('express');
const app = express();
const PORT = 3000;
// Middleware, um JSON-Daten verarbeiten zu können
app.use(express.json());
// Unser Datenspeicher im Arbeitsspeicher
let benutzerListe = ["Maximilian", "Sophie"];
// 1. Aufgabe: Die GET-Route vervollständigen
app.get('/users', (req, res) => {
// Hier senden wir das gesamte Array als JSON-Antwort an den Client zurück
res.json(benutzerListe);
});
// 2. Aufgabe: Die POST-Route vervollständigen
app.post('/users', (req, res) => {
// Wir extrahieren den Namen aus dem Request-Body
const neuerName = req.body.name;
if (neuerName) {
// Der Name wird mit .push() am Ende des Arrays hinzugefügt
benutzerListe.push(neuerName);
// Wir senden eine Erfolgsmeldung mit dem Statuscode 201 (Created)
res.status(201).send(`Benutzer ${neuerName} wurde erfolgreich gespeichert.`);
} else {
// Falls kein Name mitgeschickt wurde, senden wir den Statuscode 400 (Bad Request)
res.status(400).send("Fehler: Es wurde kein Name übertragen.");
}
});
app.listen(PORT, () => {
console.log(`Ihr Server ist nun unter http://localhost:${PORT} erreichbar.`);
});
----
[[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Volkan Demir