Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
| Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
| modul:m290_guko:learningunits:lu15:theorie:c_server_konfigurieren [2025/12/08 08:29] – gkoch | modul:m290_guko:learningunits:lu15:theorie:c_server_konfigurieren [2025/12/08 08:50] (aktuell) – gkoch | ||
|---|---|---|---|
| Zeile 25: | Zeile 25: | ||
| }); | }); | ||
| - | // Server starten und auf Port 3000 lauschen | + | // Server starten und auf Port 3000 auf Anfragen warten |
| app.listen(port, | app.listen(port, | ||
| console.log(`Example app listening on port ${port}`); | console.log(`Example app listening on port ${port}`); | ||
| Zeile 34: | Zeile 34: | ||
| **Was passiert in diesem Code?** | **Was passiert in diesem Code?** | ||
| - | * '' | + | * '' |
| - | | + | * '' |
| - | * '' | + | * '' |
| - | | + | * '' |
| - | * '' | + | |
| - | | + | |
| - | '' | + | |
| - | * '' | + | |
| - | | + | |
| * Wenn eine **GET-Anfrage** an ''/'' | * Wenn eine **GET-Anfrage** an ''/'' | ||
| * führt Express die Callback-Funktion aus. | * führt Express die Callback-Funktion aus. | ||
| * '' | * '' | ||
| '' | '' | ||
| - | * '' | + | * '' |
| - | * '' | + | * '' |
| - | | + | |
| + | {{: | ||
| + | //Das Schema zeigt, wie ein Zusammenspiel aus Anfrage (Request) und Antwort (Response) zwischen Client und Server funktioniert.// | ||
| ===== Server starten und im Browser testen ===== | ===== Server starten und im Browser testen ===== | ||
| - | | + | |
| - | | + | |
| <WRAP box round center 80%> | <WRAP box round center 80%> | ||
| Zeile 63: | Zeile 59: | ||
| </ | </ | ||
| - | | + | |
| - | *'' | + | |
| - | + | | |
| - | | + | |
| - | '' | + | |
| - | + | ||
| - | | + | |
| - | + | ||
| - | | + | |
| - | | + | |
| ===== Wichtig: Wir haben keinen „klassischen“ Webauftritt programmiert ===== | ===== Wichtig: Wir haben keinen „klassischen“ Webauftritt programmiert ===== | ||
| Zeile 82: | Zeile 71: | ||
| Sie haben in dieser Learning Unit **kein HTML**, **kein CSS** und **kein JavaScript für den Browser** geschrieben. | Sie haben in dieser Learning Unit **kein HTML**, **kein CSS** und **kein JavaScript für den Browser** geschrieben. | ||
| Sie haben **JavaScript für den Server** geschrieben. | Sie haben **JavaScript für den Server** geschrieben. | ||
| - | |||
| * Der Browser spielt hier nur die Rolle eines **Clients**, | * Der Browser spielt hier nur die Rolle eines **Clients**, | ||
| * Der Express-Server beantwortet diese Anfrage mit einer Antwort ('' | * Der Express-Server beantwortet diese Anfrage mit einer Antwort ('' | ||
| - | * Der Browser zeigt einfach an, was im **Response-Body** steht (in unserem Fall der Text '' | + | * Der Browser zeigt einfach an, was im **Response-Body** steht (in unserem Fall der Text '' |
| </ | </ | ||
| Zeile 95: | Zeile 83: | ||
| - | ===== Komfort: npm-Scripts & nodemon ===== | + | ===== Entwickler-Komfort: npm-Scripts & nodemon ===== |
| Wenn Sie nach jeder Codeänderung den Server mit '' | Wenn Sie nach jeder Codeänderung den Server mit '' | ||
| Zeile 106: | Zeile 94: | ||
| ==== 1. nodemon installieren ==== | ==== 1. nodemon installieren ==== | ||
| - | Installieren Sie '' | + | Installieren Sie '' |
| <WRAP box round center 80%> | <WRAP box round center 80%> | ||
| Zeile 116: | Zeile 104: | ||
| Dadurch ergänzt '' | Dadurch ergänzt '' | ||
| + | **Was bedeutet '' | ||
| + | |||
| + | In '' | ||
| + | |||
| + | * '' | ||
| + | * '' | ||
| + | |||
| + | '' | ||
| + | Es hilft Ihnen beim Programmieren (automatischer Neustart bei Änderungen), | ||
| + | Darum speichern wir es mit '' | ||
| + | |||
| + | {{: | ||
| ==== 2. Scripts in '' | ==== 2. Scripts in '' | ||
| - | Öffnen Sie '' | + | Öffnen Sie '' |
| <WRAP box round center 80%> | <WRAP box round center 80%> | ||
| Zeile 130: | Zeile 130: | ||
| </ | </ | ||
| - | Sie können dann: | + | Damit definieren |
| - | * mit '' | + | * **'' |
| - | * mit '' | + | - Startet |
| + | - Der Prozess läuft „ganz normal“ ohne automatischen | ||
| + | - Das entspricht eher einem **Produktivbetrieb**: | ||
| - | Wenn Sie nun in '' | + | * **'' |
| + | - Startet den Server mit '' | ||
| + | - '' | ||
| + | - Das ist ideal für die **Entwicklung im Unterricht**, | ||
| + | |||
| + | Wenn Sie nun in '' | ||
| + | Sie müssen '' | ||
| ===== node_modules & IDE-Hinweise ===== | ===== node_modules & IDE-Hinweise ===== | ||
| - | * Der Ordner '' | + | * Der Ordner '' |
| - | | + | |
| * Für Abgaben (z.B. in Moodle) reicht meist: | * Für Abgaben (z.B. in Moodle) reicht meist: | ||
| * Quellcode-Dateien (z.B. '' | * Quellcode-Dateien (z.B. '' | ||
| * '' | * '' | ||
| - | * In WebStorm können Sie bei Bedarf die **Inlay-Hints** (kleine Typ-Hinweise) deaktivieren, | + | * In WebStorm können Sie bei Bedarf die **Inlay-Hints** (kleine Typ-Hinweise) deaktivieren, |
| - | | + | |
| In den nächsten Learning Units werden Sie: | In den nächsten Learning Units werden Sie: | ||
| Zeile 152: | Zeile 158: | ||
| * weitere Routen in Ihrem Express-Server anlegen, | * weitere Routen in Ihrem Express-Server anlegen, | ||
| * Daten nicht nur zurückgeben, | * Daten nicht nur zurückgeben, | ||
| - | * Ihre **persönlichen Use Cases** (z.B. Reisedatenbank, | + | * Ihre **persönlichen Use Cases** (z.B. Reisedatenbank, |
| - | | + | |
| - | + | ||
| - | ---- | + | |
| - | [[https:// | + | |