← Nivå 3 – Mester

Leksjon 8 av 10 ⏱ 40 minutter Premium

En lille server med Express

Byg din egen server i Node.js og Express. Din første API svarer på sin første forespørgsel.

Jeg viser deg: opsetning af en server

Express er den mest populære pakke til at bygge servere i Node.js – den gjør jobbet til bare et par linjer. En server er et separat projekt, adskilt fra React-appen (husk: frontend og backend er to halvdele). I terminalen:

cd Desktop
mkdir my-server
cd my-server
npm init -y
npm install express

Åpne mappen i VS Code og lag en fil kalt server.js:

const express = require("express");
const app = express();

// When someone sends a GET to /api/hello, respond
app.get("/api/hello", (request, response) => {
  response.json({ message: "Hi! This is your own server. 🎉" });
});

app.listen(3900, () => {
  console.log("Server running at http://localhost:3900");
});

Kjør den:

node server.js

Og åpne http://localhost:3900/api/hello i nettleseren. Ser du JSON-svaret? Du har nettopp bygget en server. Ingen magi – 10 linjer.

Hva der sker i koden:

Du stopper serveren med Ctrl+C. Og pas på: etter hver kodeendring skal du stoppe og genstarte den – en server er ikke Vite, den oppdaterer sig ikke selv.

Jeg viser deg: en server med data

En server udleverer normalt data. Legg til et andet endpoint over listen:

const results = [
  { opponent: "Lakeside", score: "3:1", home: true },
  { opponent: "Northgate", score: "2:2", home: false },
  { opponent: "Elmwood", score: "4:0", home: true },
];

app.get("/api/results", (request, response) => {
  response.json(results);
});

Genstart serveren og åpne http://localhost:3900/api/results – dine data, serveret gjennom en API. Nøyaktig sådan fungerer hver stor nettside (bare med en database i stedet for et array).

Nå er det din tur 💪

  1. Få en server til at kjøre etter guiden.
  2. Legg til et endpoint med data fra prosjektet ditt: 🏫 /api/menu (et array af måltider for ugen) · 🙋 /api/favorites (dine topspil/bøger) · 🌍 /api/trips (en liste over ture) · ⚽ /api/results (kampresultater).
  3. Legg til et legende endpoint /api/random, der returnerer en anden melding hver gang:
const messages = ["We're winning today!", "Practice at 5 PM!", "Let's go, Eagles!"];

app.get("/api/random", (request, response) => {
  const random = messages[Math.floor(Math.random() * messages.length)];
  response.json({ message: random });
});
  1. Prøv alle endpoints i nettleseren – og prøv så at kalde ét med fetch() fra konsollen, som du lærte i siste leksjon.
⚠️

“Cannot GET /api/…” betyder, at endpointet ikke eksisterer – sjekk for en stavefeil i adressen og om du genstartede serveren etter endringen. “EADDRINUSE” betyder, at port 3900 allerede er i bruk – du har sandsynligvis en gammel server kjørende i en anden terminal; finn den og stop den (Ctrl+C).

Sjekk deg selv: Din server kjører på port 3900 og svarer på flere endpoints med dine egne JSON-data. Du kjenner frontend, du er begyndt på backend – det eneste, der mangler, er at forbinde dem. Det gjør vi nøyaktig i neste leksjon med en gjestebok.

Dette tar du med deg fra leksjonen