Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| de:modul:m307:learningunits:lu03:aufgaben:03 [2026/05/19 14:15] – vdemir | de:modul:m307:learningunits:lu03:aufgaben:03 [2026/05/21 16:59] (aktuell) – vdemir | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== LU03.A03/L03 - Datenmanagement | + | ====== LU03.A03 - Array darstellen |
| - Programmierung eines Node.js Webservers, der mittels GET ein Liste von Namen mittels ausgibt. | - 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. | - Programmierung eines Node.js Webservers, der in eine Liste einen Namen mittels POST hinzufügt. | ||
| Zeile 40: | Zeile 40: | ||
| {{: | {{: | ||
| + | ===== Aufgabe ===== | ||
| + | Das nachfolgende Script enthält einen JSON-Satz, der am Monitor anzeigt. Damit Sie das Script zum laufen bekommen befolgen Sie die nachfolgenden Anweiseungen. | ||
| + | - Kopieren Sie die nachfolgende JS-Vorlage in Ihre Visual Studio Code. | ||
| + | - Starten Sie den Server | ||
| + | - Lassen Sie sich die Daten im Browserfenster anzeigen. | ||
| + | - Ergänzen Sie den angezeigten Person-Datensatz durch weitere mindestens 3 Personen. | ||
| + | - Lassen Sie sich durch eine AI eine passende HTML-Darstellung für die Daten generieren. | ||
| - | ===== Aufgabe ===== | + | **server.js** |
| - | - 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:// | + | |
| - | - Fügen Sie in die Liste Namen hinzu durch z.B. die URL: http:// | + | |
| - | - Prüfen Sie durch erneute Abfrage der List, ob Sie erfolgreich einen Namen anhängen konnten. | + | |
| - | + | ||
| <code javascript> | <code javascript> | ||
| - | |||
| const express = require(' | const express = require(' | ||
| const app = express(); | const app = express(); | ||
| - | const PORT = 3000; | + | const path = require(' |
| - | // Middleware, um JSON-Daten verarbeiten zu können | ||
| - | app.use(express.json()); | ||
| - | // Unser Datenspeicher im Arbeitsspeicher | + | // Die Daten der drei Personen |
| - | let benutzerListe | + | const personen |
| + | { id: 1, name: "Max Mustermann", | ||
| + | ]; | ||
| - | // 1. Aufgabe: Die GET-Route vervollständigen | + | // Server erstellen |
| - | app.get('/ | + | const server = http.createServer((req, res) => { |
| - | // Hier senden wir das gesamte Array als JSON-Antwort an den Client zurück | + | // Wichtig: Wir setzen den Content-Type auf ' |
| - | res.json(benutzerListe); | + | res.writeHead(200, { ' |
| - | }); | + | |
| - | + | ||
| - | // 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; | + | |
| | | ||
| - | | + | // Die Personen-Objekte in einen JSON-String umwandeln und senden |
| - | | + | res.end(JSON.stringify(personen)); |
| - | benutzerListe.push(neuerName); | + | |
| - | + | ||
| - | // Wir senden | + | |
| - | 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(" | + | |
| - | } | + | |
| }); | }); | ||
| - | app.listen(PORT, | + | // Server auf Port 3000 starten |
| - | console.log(`Ihr Server | + | const PORT = 3000; |
| + | server.listen(PORT, | ||
| + | console.log(`Server | ||
| }); | }); | ||
| + | </ | ||
| + | <code html> | ||
| + | < | ||
| + | <html lang=" | ||
| + | < | ||
| + | <meta charset=" | ||
| + | < | ||
| + | < | ||
| + | table { width: 50%; border-collapse: | ||
| + | th, td { border: 1px solid #999; padding: 8px; text-align: left; } | ||
| + | th { background-color: | ||
| + | </ | ||
| + | </ | ||
| + | < | ||
| + | |||
| + | < | ||
| + | |||
| + | < | ||
| + | < | ||
| + | <tr> | ||
| + | < | ||
| + | |||
| + | </tr> | ||
| + | </ | ||
| + | <!-- Hier landen die Daten dynamisch --> | ||
| + | <tbody id=" | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | // Daten vom Server abrufen | ||
| + | fetch('/ | ||
| + | .then(response => response.json()) // Antwort in JSON umwandeln | ||
| + | .then(daten => { | ||
| + | const tbody = document.getElementById(' | ||
| + | | ||
| + | // Schleife durch alle Personen | ||
| + | daten.forEach(person => { | ||
| + | // Eine neue Tabellenzeile erstellen | ||
| + | const zeile = document.createElement(' | ||
| + | | ||
| + | // Zellen mit den Daten füllen | ||
| + | zeile.innerHTML = ` | ||
| + | < | ||
| + | |||
| + | `; | ||
| + | | ||
| + | // Zeile an die Tabelle anhängen | ||
| + | tbody.appendChild(zeile); | ||
| + | }); | ||
| + | }) | ||
| + | .catch(error => console.error(' | ||
| + | </ | ||
| + | |||
| + | </ | ||
| + | </ | ||
| </ | </ | ||
| + | |||
| ---- | ---- | ||
| + | ===== Lösungen ===== | ||
| + | [[de: | ||
| + | ---- | ||
| [[https:// | [[https:// | ||
| + | |||