← Stopnja 3 – Mojster

Lekcija 8 od 10 ⏱ 40 minut Premium

Majhen strežnik z Express

Zgradi lasten strežnik v Node.js in Express. Tvoj prvi API odgovori na prvo zahtevo.

Pokažem ti: postavitev strežnika

Express je najbolj priljubljen paket za gradnjo strežnikov v Node.js – delo spravi v nekaj vrstic. Strežnik je ločen projekt, ločen od React aplikacije (spomni se: frontend in backend sta dve polovici). V terminalu:

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

Odpri mapo v VS Code in ustvari datoteko 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");
});

Zaženi:

node server.js

In v brskalniku odpri http://localhost:3900/api/hello. Vidiš JSON odgovor? Pravkar si zgradil strežnik. Brez magije – 10 vrstic.

Kaj se dogaja v kodi:

Strežnik ustaviš s Ctrl+C. Pazljivo: po vsaki spremembi kode ga moraš ustaviti in znova zagnati – strežnik ni Vite, se ne osvežuje sam.

Pokažem ti: strežnik s podatki

Strežnik običajno izdaja podatke. Dodaj drugi endpoint nad 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);
});

Znova zaženi strežnik in odpri http://localhost:3900/api/results – tvoji podatki, servirani prek API-ja. Tako deluje vsaka velika spletna stran (le z bazo podatkov namesto polja).

Zdaj si na vrsti 💪

  1. Po navodilih zaženi strežnik.
  2. Dodaj endpoint s podatki iz tvojega projekta: 🏫 /api/menu (polje obrokov za teden) · 🙋 /api/favorites (najljubše igre/knjige) · 🌍 /api/trips (seznam potovanj) · ⚽ /api/results (rezultati tekem).
  3. Dodaj igriv endpoint /api/random, ki vsakič vrne drugačno sporočilo:
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. Preizkusi vse endpointe v brskalniku – nato enega pokliči z fetch() iz konzole, kot si se naučil v prejšnji lekciji.
⚠️

“Cannot GET /api/…” pomeni, da endpoint ne obstaja – preveri tipkarsko napako v naslovu in ali si po spremembi znova zagnal strežnik. “EADDRINUSE” pomeni, da so vrata 3900 zasedena – verjetno še teče stari strežnik v drugem terminalu; najdi ga in ustavi (Ctrl+C).

Preveri se: Tvoj strežnik teče na vratih 3900 in odgovarja na več endpointov z lastnimi JSON podatki. Poznaš frontend, začenjaš backend – ostane ju povezati. To naredimo v naslednji lekciji s knjigo obiskovalcev.

Kaj si vzameš iz te lekcije