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:04 [2026/05/26 13:31] – vdemir | de:modul:m307:learningunits:lu03:aufgaben:04 [2026/05/28 13:48] (aktuell) – vdemir | ||
|---|---|---|---|
| Zeile 1: | Zeile 1: | ||
| - | ====== LU03.A04 - JSON-Daten lesen und schreiben mit JavaScript + HTML + CSS | + | ====== LU03.A04/L04 - Webformulare: |
| - Bestandteile eine node-Servers kennen. | - Bestandteile eine node-Servers kennen. | ||
| - Basis-Server ausführen können. | - Basis-Server ausführen können. | ||
| Zeile 7: | Zeile 7: | ||
| * Sozialform: individual | * Sozialform: individual | ||
| * Hilfsmittel: | * Hilfsmittel: | ||
| - | * Zeit: 20 Minutes | + | * Zeit: 30 Minutes |
| * Erwartetes Resultat: Node-Server, | * Erwartetes Resultat: Node-Server, | ||
| - | |||
| ===== Ausgangslage ===== | ===== Ausgangslage ===== | ||
| - | ... | + | Um Rahmen des Web-Entwicklungsprojekts „Personenverzeichnis“ soll eine bestehende Node.js-Applikation mit Express und EJS (Embedded JavaScript) finalisiert und in Betrieb genommen werden. Bisher blockieren fehlerhafte Dateipfade, unvollständige Routen-Variablen sowie Caching-Probleme im Firefox-Browser das fehlerfreie Hinzufügen, |
| - | ===== Ordnerstruktur der Daten ===== | ||
| - | < | ||
| - | mein-projekt/ | ||
| - | ├── data.json | ||
| - | ├── server.js | ||
| - | ├── public/ | ||
| - | │ | ||
| - | │ | ||
| - | └── views/ | ||
| - | └── index.ejs | ||
| - | | ||
| - | </ | ||
| - | | ||
| - | | ||
| ===== Auftrag ===== | ===== Auftrag ===== | ||
| - | Nachfolgend finden | + | Installieren |
| - | - Fügen Sie diese zusammen. | + | Wenn alles korrekt gemacht wurde, sieht Ihre Applkation ungefähr wie folgt aus: |
| - | - Lassen Sie diese laufen | + | |
| - | - Prüfen Sie Ausgabe im Monitor/ | + | |
| + | {{: | ||
| - | ==== 1. Vorarbeiten | + | ===== Benötigte File und Ablage-Struktur ===== |
| - | - Erstellen Sie in Ihrem Visual | + | |
| - | | + | Die nachfolgenden Files müssen wir folgt im VS Studio Code abgelegt werden: {{: |
| - | | + | |
| + | Stellen Sie also sicher, dass diese den nachfolgenden Aufbau haben. | ||
| + | |||
| + | < | ||
| + | ▼ a04 (Projekt-Wurzelverzeichnis) | ||
| + | ▼ public | ||
| + | ▼ css | ||
| + | style.css | ||
| + | ▼ views | ||
| + | index.ejs | ||
| + | data.json | ||
| + | server.js | ||
| + | </code> | ||
| + | |||
| + | ===== Arbeitsschritte ==== | ||
| + | |||
| + | **1. Order & Files** | ||
| + | | ||
| + | | ||
| + | |||
| + | **2. Projektabhängigkeiten einrichten** | ||
| + | |||
| + | Bevor das Skript starten kann, müssen | ||
| + | |||
| + | **Hinweis: | ||
| < | < | ||
| npm init -y | npm init -y | ||
| - | npm install express | ||
| </ | </ | ||
| + | **3. Express installieren ** | ||
| - | ==== 2. Server | + | Die benötigten Module installieren: |
| - | Erstellen Sie ein weiteres File mit dem Titel // | + | |
| < | < | ||
| - | const express | + | npm install |
| - | const app = express(); | + | </ |
| - | const PORT = 3000; | + | |
| - | // Middleware, damit Express | + | ** 4. Schreibberechtigung der JSON-Datei setzten** |
| - | app.use(express.json()); | + | Es kann passieren, dass Sie die JSON-Datei nicht beschreiben können, was sich durch eine Fehlermeldung beim Server bemerkbar macht. Damit wir die JSON-Datei auch beschreiben können, müssen wir hier die Berechtigung anpassen. Gehen Sie im Terminal an die Stelle, an dem die JSON-Datei gespeichert wurde und geben die nachfolgenden Codezeilen ein. |
| - | // Unser " | + | ** 4.1 Winddows-Powershell** |
| - | let users = [" | + | |
| - | // --- DEINE AUFGABE AB HIER --- | + | < |
| + | # Entfernt das Schreibschutz-Attribut (R = Read-Only) von der Datei | ||
| + | attrib | ||
| + | </ | ||
| - | // 1. GET ROUTE: Gib das ' | + | **4.2 MacOS** |
| - | app.get('/ | + | |
| - | // CODE HIER | + | |
| - | }); | + | |
| - | // 2. POST ROUTE: Füge einen neuen User hinzu | + | <code> |
| - | app.post('/ | + | # Gibt dem Besitzer |
| - | const newUser = req.body.name; | + | chmod 644 data.json |
| - | + | ||
| - | if (newUser) { | + | |
| - | // CODE HIER: User zum Array hinzufügen | + | |
| - | res.status(201).send(`User ${newUser} wurde hinzugefügt.`); | + | |
| - | } else { | + | |
| - | res.status(400).send(" | + | |
| - | } | + | |
| - | }); | + | |
| - | // --- ENDE DER AUFGABE --- | + | # Falls der ganze Ordner blockiert ist, rekursiv für alle Dateien freigeben: |
| + | chmod -R 755 | ||
| - | app.listen(PORT, | ||
| - | console.log(`Server läuft auf http:// | ||
| - | }); | ||
| </ | </ | ||
| + | |||
| + | |||
| Zeile 94: | Zeile 91: | ||
| ===== Lösungen ===== | ===== Lösungen ===== | ||
| - | [[de: | + | Gibt keine, da die Aufgabe darin besteht die Applikation zu laufen zu bringen. |
| ---- | ---- | ||
| [[https:// | [[https:// | ||