← Niveau 3 – Meester

Les 8 van 10 ⏱ 40 minuten Premium

Een kleine server met Express

Bouw je eigen server in Node.js en Express. Je eerste API beantwoordt zijn eerste verzoek.

Ik laat je zien: een server opzetten

Express is het populairste package om servers in Node.js te bouwen – het maakt er een paar regels van. Een server is een apart project, los van de React-app (onthoud: frontend en backend zijn twee helften). In de terminal:

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

Open de map in VS Code en maak een bestand 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");
});

Start hem:

node server.js

En open http://localhost:3900/api/hello in je browser. Zie je het JSON-antwoord? Je bouwde net een server. Geen magie – 10 regels.

Wat er in de code gebeurt:

Je stopt de server met Ctrl+C. En let op: na elke codewijziging moet je stoppen en opnieuw starten – een server is geen Vite, hij ververst zichzelf niet.

Ik laat je zien: een server met data

Een server deelt meestal data uit. Voeg een tweede endpoint toe boven 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);
});

Herstart de server en open http://localhost:3900/api/results – jouw data, via een API. Zo werkt elke grote website (alleen met een database in plaats van een array).

Nu jij 💪

  1. Laat een server draaien volgens de handleiding.
  2. Voeg een endpoint toe met data uit je project: 🏫 /api/menu (array met maaltijden van de week) · 🙋 /api/favorites (je topgames/boeken) · 🌍 /api/trips (lijst met reizen) · ⚽ /api/results (wedstrijduitslagen).
  3. Voeg een speels endpoint /api/random toe dat elke keer een ander bericht teruggeeft:
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. Probeer alle endpoints in je browser – en roep er daarna één aan met fetch() uit de console, zoals in de vorige les.
⚠️

“Cannot GET /api/…” betekent dat het endpoint niet bestaat – controleer een typefout in het adres en of je de server na de wijziging herstart hebt. “EADDRINUSE” betekent dat poort 3900 al in gebruik is – je hebt waarschijnlijk een oude server in een andere terminal; zoek hem en stop (Ctrl+C).

Controleer jezelf: Je server draait op poort 3900 en antwoordt op meerdere endpoints met je eigen JSON-data. Je kent de frontend, je begint aan de backend – alleen ze koppelen blijft over. Dat doen we in de volgende les met een gastenboek.

Wat neem je mee uit deze les