Lektion 13 — Forberedelse

I lektion 11 skrev I server.js: én proces, ét if, og JSON på GET /api/patients. Listen ligger stadig i hukommelsen. Forberedelsen er, hvad en route er, og et lille Express-program I selv har startet. I timen samler vi begge dele op og lægger routen ind i server.js. Den kalder I uden browseren.

Forberedelsen er ca. 45 minutter.

1. Framework og route (~25 min)

Node kan tage imod et request. Det gjorde jeres http.createServer. Den vælger ikke selv, hvilken funktion der skal køre for en metode og en sti. Det gjorde jeres if: det sendte requestet videre til den rigtige kode. Det kaldes routing, og i Express skriver man det som en route.

Back End Development and APIs

Kapitel Back End Development and APIs. Lav disse lectures:

  1. What is Express.js?
  2. What Is Routing and How Do Route Methods Work in Express?
  3. What Are Route Paths in Express?
  4. What Are the Different Response Methods in Express?

Fokusér på, at Express ligger oven på Node, og at en route er en metode, en sti og en funktion. app.get er det if, der i server.js tjekker GET og /api/patients. app.listen starter processen, ligesom server.listen.

/api/patients er en statisk sti, samme slags som /home i lecturen om route paths. res.send sender tekst. res.json sender JSON, og det er det, jeres server allerede svarer. res.status(404) sætter statuskoden, før svaret sendes.

app.get svarer på et GET, der henter. app.post svarer på et POST, der opretter. Det er det samme som i lektion 11: POST sender noget, der skal gemmes.

I response-lecturen: læs res.send, res.json og res.status. res.redirect og res.render bruger I ikke. Spring app.route(), express.Router() og flere callbacks på samme route over. Handleren — funktionen i routen — skal I kende. Static files hører til deploy-vejledningen i lektion 17. Route parameters (/api/patients/:cpr) tager vi kort i timen. Workshoppen Build a Random Joke App er ikke forberedelse.

2. Kør et Express-program (~20 min)

Følg How Do You Create a Basic Express App? i en ny mappe, my-app. Ikke i gruppens projekt. server.js skal blive stående, som den er.

Når Hello World! vises på http://localhost:3000, så stop processen med Ctrl+C og tilføj en route mere i index.js, over app.listen:

app.get("/api/patients", (req, res) => {
  res.json([{ cpr: "2512489996", navn: "Nancy Ann Test Berggren" }]);
});

Start igen med node index.js. Åbn de to adresser i browseren:

  • http://localhost:3000/ skal vise teksten fra res.send
  • http://localhost:3000/api/patients skal vise JSON-listen

Stop processen bagefter. Port 3000 skal være fri til timen.

Når du er færdig

Du skal kunne forklare:

  • at jeres if i server.js er routing: det sender requestet til en handler ud fra metode og sti. En route i Express er det samme skrevet som metode, sti og funktion
  • at Express ligger oven på den Node-server, I allerede har, og at app.listen stadig er processen, der venter
  • at GET henter, og at POST sender noget, der skal gemmes
  • forskellen på res.send og res.json

Og du skal have set begge adresser i browseren.

POST ind i listen, 404-svaret fra lektion 11 og omskrivningen af server.js tager vi i timen. PostgreSQL er lektion 15.

Praktisk

  • freeCodeCamp kræver login (gratis), hvis du vil gemme din fremgang.
  • Node skal svare på node -v. Det installerede I til lektion 11.
  • Hav server.js med. Den skal stadig være http.createServer.
  • my-app ligger uden for gruppens repository.