Lektion 17 — Repository og databasen
Routes fra lektion 13 og tabellen fra lektion 15 mødes. Forberedelsen er lag
i koden, SQL injection, statuskoder og et lille script, der henter fra din
egen Neon-database. I timen flytter I server.js over på et repository med
pg, så listen husker, når serveren genstarter. Til sidst kører gruppens
egen handling fra formular til tabel — kernen i D2.
Forberedelse
Det forventes, at du har forberedt dig — en kort tekst, to lectures,
node-postgres og hent.js mod din egen database (ca. 70 min).
Program (4 timer)
| Tid | Blok | Indhold |
|---|---|---|
| 20 min | Opsamling | Lag i koden, pg, $1 og .env |
| 10 min | Quiz | Forberedelsen |
| 25 min | Gennemgang | Repositoryet i server.js: patients.js, async og 500 |
| 10 min | Quiz | Repository og GET |
| 35 min | Øvelse 1 | Listen husker — GET fra gruppens tabel i Neon |
| 25 min | Gennemgang | POST, 201/400/500, SQL injection, cors og formularen |
| 10 min | Quiz | POST, statuskoder og $1 |
| 30 min | Øvelse 2 | POST og testskemaet — seks requests fra api.http |
| 30 min | Øvelse 3 | Gruppens handling — fra formular til gruppens egen tabel |
Der er afsat 45 minutter til pauser, som lægges ind undervejs.
Slides
Øvelser
Øvelserne står samlet her, med mere uddybning end på slidesne:
Efter timen: deploy til D2
D2 skal køre på en URL på Vercel. Følg vejledningen, når den centrale brugerhandling virker lokalt:
Efter lektionen kan du
- forklare, hvad et repository er, og hvorfor SQL'en samles ét sted
- forbinde
server.jstil gruppens Neon-database med connection-stringen i.env, uden for git - hente og gemme med parametriseret SQL (
$1,$2) og forklare, hvorfor værdierne ikke klistres ind i SQL-teksten - svare
201,400og500og teste dem fraapi.http - vise, at data overlever en genstart af serveren
- køre gruppens centrale brugerhandling fra formular til tabel og forklare, hvorfor browseren først sender et preflight