Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:modul:m307:learningunits:lu03:aufgaben:04 [2026/05/26 14:57] vdemirde:modul:m307:learningunits:lu03:aufgaben:04 [2026/05/28 13:48] (aktuell) vdemir
Zeile 1: Zeile 1:
-====== LU03.A04 - Webformulare: JSON-Daten lesen, bearbeiten, einfügen und löschen ======+====== LU03.A04/L04 - Webformulare: JSON-Daten lesen, bearbeiten, einfügen und löschen ======
   - Bestandteile eine node-Servers kennen.   - Bestandteile eine node-Servers kennen.
   - Basis-Server ausführen können.   - Basis-Server ausführen können.
Zeile 9: Zeile 9:
   * Zeit: 30 Minutes   * Zeit: 30 Minutes
   * Erwartetes Resultat: Node-Server, der verschiedene abgefragte Daten am Monitor/Browser bearbeitet und ausgibt.   * Erwartetes Resultat: Node-Server, der verschiedene abgefragte Daten am Monitor/Browser bearbeitet und ausgibt.
- 
  
 ===== Ausgangslage ===== ===== Ausgangslage =====
-... 
- 
-===== Ordnerstruktur der Daten ===== 
 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, Bearbeiten und Löschen von Datensätzen. Ihre Aufgabe ist es, die Ordnerstruktur zu bereinigen, die Server-Logik zu vervollständigen und die Benutzeroberfläche mit einem dynamischen Hobby-Dropdown sowie optimierten Buttons auszustatten. Der lokale Prototyp muss anschliessend auf Port 3000 fehlerfrei und stabil laufen. 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, Bearbeiten und Löschen von Datensätzen. Ihre Aufgabe ist es, die Ordnerstruktur zu bereinigen, die Server-Logik zu vervollständigen und die Benutzeroberfläche mit einem dynamischen Hobby-Dropdown sowie optimierten Buttons auszustatten. Der lokale Prototyp muss anschliessend auf Port 3000 fehlerfrei und stabil laufen.
  
-===== Benötigte File und Ablage-Struktur ===== 
  
-Die nachfolgenden Files müssen wir folgt im VS Studio Code abgelegt werden.+===== Auftrag ===== 
 +Installieren Sie die Ihnen zur Verfügung gestellten Files wie unten abgebildet und lassen Sie die //Mini-Applikation// laufen. Legen Sie Personen an, filtern diese und löschen auch Datensätze. 
 + 
 +Wenn alles korrekt gemacht wurde, sieht Ihre Applkation ungefähr wie folgt aus: 
 + 
 +{{:de:modul:m307:learningunits:lu03:aufgaben:applikationsmaske.png?600|Ansicht der Webmaske}} 
 + 
 +===== Benötigte File und Ablage-Struktur =====
  
-{{ :de:modul:m307:learningunits:lu03:aufgaben:a04.zip| Benötigten Files}}+Die nachfolgenden Files müssen wir folgt im VS Studio Code abgelegt werden: {{:de:modul:m307:learningunits:lu03:aufgaben:a04.zip|Benötigten Files als Zipfile}}
  
 Stellen Sie also sicher, dass diese den nachfolgenden Aufbau haben. Stellen Sie also sicher, dass diese den nachfolgenden Aufbau haben.
Zeile 36: Zeile 38:
  </code>  </code>
  
 +===== Arbeitsschritte ====
  
-     +**1. Order & Files** 
-===== Auftrag ===== +  * Laden Sie die Files herunter 
-Nachfolgend finden Sie verschiedene Code-Snippets. +  * Importieren Sie diese ins VS Studio Code
  
-  - Fügen Sie diese zusammen. +**2Projektabhängigkeiten einrichten**
-  - Lassen Sie diese laufen +
-  - Prüfen Sie Ausgabe im Monitor/Browser+
  
 +Bevor das Skript starten kann, müssen die benötigten Node-Pakete installiert werden. Gehen Sie also in Ihr Projektverzeichnis und tippen den nachfolgenden Befehl in die Kommandozeile.
  
-==== 1Vorarbeiten ==== +**Hinweis:** Unter Windows muss der gewählte Terminal ein **Commandline** oder **Command Prompt** sein
-  - Erstellen Sie in Ihrem Visual Studio Code eine Ordner mit dem Titel //lu03_a02// +
-  - Gehen Sie im Terminial in diesen neuen Ordner +
-  - Installieren Sie alle relevanten JS-Komponenten in diesem Ordner durch die nachfolgenden zwei Codezeilen --> Es werden nun verschiedene Componenten installiert (sichtbar rechts unten im CodeEditor)+
  
 <code> <code>
 npm init -y npm init -y
-npm install express 
 </code> </code>
  
 +**3. Express installieren **
  
-==== 2. Server ==== +Die benötigten Module installieren: Express (für den Serverund EJS (für die Templates) müssen im Projekt registriert werden:
-Erstellen Sie ein weiteres File mit dem Titel //server.js// und kopieren den nachfolgenden Code rein.+
  
 <code> <code>
-const express = require('express'); +npm install express ejs 
-const app = express(); +</code>
-const PORT = 3000;+
  
-// Middleware, damit Express JSON-Daten im Body lesen kann +** 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 machtDamit 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 "Datenbank"-Ersatz +** 4.1 Winddows-Powershell**
-let users = ["Alice", "Bob"];+
  
-// --- DEINE AUFGABE AB HIER ---+<code> 
 +# Entfernt das Schreibschutz-Attribut (R = Read-Only) von der Datei 
 +attrib -r data.json 
 +</code>
  
-// 1GET ROUTE: Gib das 'users' Array zurück +**4.2 MacOS**
-app.get('/users', (req, res) => { +
-    // CODE HIER +
-});+
  
-// 2. POST ROUTE: Füge einen neuen User hinzu +<code
-app.post('/users', (req, res) ={ +# Gibt dem Besitzer (User) Lese- und Schreibrechte (rw-
-    const newUser = req.body.name; // Wir erwarten { "name": "DeinName"+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("Fehler: Kein Name angegeben!"); +
-    } +
-});+
  
-// --- 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://localhost:${PORT}`); 
-}); 
 </code> </code>
 +
 +
  
  
Zeile 103: Zeile 91:
  
 ===== Lösungen ===== ===== Lösungen =====
-[[de:modul:m307:learningunits:lu03:Lösungen:01|LU03.L01]]+Gibt keine, da die Aufgabe darin besteht die Applikation zu laufen zu bringen.
  
 ---- ----
 [[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Volkan Demir [[https://creativecommons.org/licenses/by-nc-sa/4.0/|{{https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png}}]] Volkan Demir
  • de/modul/m307/learningunits/lu03/aufgaben/04.1779800273.txt.gz
  • Zuletzt geändert: 2026/05/26 14:57
  • von vdemir