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).

Forberedelse til Lektion 17

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

Forelæsningsslides

Øvelser

Øvelserne står samlet her, med mere uddybning end på slidesne:

Øvelser til Lektion 17

Efter timen: deploy til D2

D2 skal køre på en URL på Vercel. Følg vejledningen, når den centrale brugerhandling virker lokalt:

Deploy backend til Vercel

Efter lektionen kan du

  • forklare, hvad et repository er, og hvorfor SQL'en samles ét sted
  • forbinde server.js til 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, 400 og 500 og teste dem fra api.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