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.
Kapitel Back End Development and APIs. Lav disse lectures:
- What is Express.js?
- What Is Routing and How Do Route Methods Work in Express?
- What Are Route Paths in Express?
- 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 frares.sendhttp://localhost:3000/api/patientsskal 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
ifiserver.jser 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.listenstadig er processen, der venter - at
GEThenter, og atPOSTsender noget, der skal gemmes - forskellen på
res.sendogres.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.jsmed. Den skal stadig værehttp.createServer. my-appligger uden for gruppens repository.