Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| de:modul:m307:learningunits:lu03:loesungen:03 [2026/05/19 15:28] – angelegt vdemir | de:modul:m307:learningunits:lu03:loesungen:03 [2026/05/21 09:49] (aktuell) – vdemir | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== LU03.L02 ====== | + | ====== LU03.L03 ====== |
| **app.js** | **app.js** | ||
| <code javascript> | <code javascript> | ||
| - | // Author: Volkan Demir, 07.05.2026 | + | const express |
| - | // Erster kleiner Express-Server in JavaScript | + | const app = express(); |
| - | // Dieser Server liest die index.html Datei und sendet sie an den Browser, wenn die Startseite ("/" | + | const path = require(' |
| - | const http = require(" | + | |
| - | const fs = require(" | + | |
| - | const PORT = 3001; | + | |
| - | const server = http.createServer(function(req, | + | // Die Daten der drei (jetzt vier) Personen |
| - | | + | const personen = [ |
| - | | + | |
| - | // | + | |
| - | fs.readFile("index.html", | + | { id: 3, name: "Ben Weber", alter: 22, beruf: "Student" }, |
| - | | + | { id: 4, name: "Peter König", |
| - | res.writeHead(404, { "Content-Type": "text/html" }); | + | ]; |
| - | res.write(" | + | |
| - | return; | + | |
| - | | + | |
| - | | + | |
| - | // Teilauftrag | + | // FEHLENDE CODEZEILE |
| - | res.write('< | + | app.use(express.static(__dirname)); |
| - | | + | |
| - | | + | // FEHLENDE CODEZEILE |
| - | // Anlegen und Anzeigen einer kleine Tabelle mittels JS-generierten HTML-Code | + | app.get('/' |
| - | | + | res.sendFile(path.join(__dirname, ' |
| - | | + | |
| - | | + | |
| - | htmlstr += '< | + | |
| - | + | ||
| - | res.write(htmlstr); | + | |
| - | } | + | |
| - | res.end(); | + | |
| - | }); | + | |
| }); | }); | ||
| - | server.listen(PORT, function() { | + | // FEHLENDE CODEZEILE 3: Route für die JSON-Daten (falls du die Daten per fetch abrufen willst) |
| - | | + | app.get('/ |
| - | }); | + | |
| + | }); | ||
| + | // Server auf Port 3000 starten | ||
| + | const PORT = 3000; | ||
| + | app.listen(PORT, | ||
| + | console.log(`Server läuft unter http:// | ||
| + | }); | ||
| </ | </ | ||
| Zeile 51: | Zeile 41: | ||
| < | < | ||
| <meta charset=" | <meta charset=" | ||
| - | < | + | < |
| + | < | ||
| + | table { width: 50%; border-collapse: | ||
| + | th, td { border: 1px solid #999; padding: 8px; text-align: left; } | ||
| + | th { background-color: | ||
| + | </style> | ||
| </ | </ | ||
| < | < | ||
| - | <h1>Antwort vom Server:</ | + | <h1>Personenliste</h1> |
| - | + | ||
| - | <p>{SERVER_MSG}}<</p> | + | |
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | </ | ||
| + | </ | ||
| + | <!-- Hier landen die Daten dynamisch --> | ||
| + | <tbody id=" | ||
| + | </table> | ||
| + | |||
| + | < | ||
| + | // 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 = ` | ||
| + | <td>${person.id}</ | ||
| + | < | ||
| + | < | ||
| + | < | ||
| + | `; | ||
| + | |||
| + | // Zeile an die Tabelle anhängen | ||
| + | tbody.appendChild(zeile); | ||
| + | }); | ||
| + | }) | ||
| + | .catch(error => console.error(' | ||
| + | | ||
| </ | </ | ||