Treci la conținutul principal

Câte un handler pentru fiecare rută

Rutarea decide care handler răspunde la care cerere. Modulul node:http nu are un router propriu: el trimite fiecare cerere către o singură funcție, iar tu decizi unde merge mai departe. Asta cere doar câteva linii — și, scriindu-le o dată, vezi exact ce face un router.

Piesele sunt metoda cererii (req.method), calea ei și interogarea. new URL(req.url ?? "/", "http://localhost") separă calea de șirul de interogare, pentru că req.url este doar partea de după gazdă. Un tipar precum "/users/{id}" este apoi potrivit segment cu segment, iar bucata potrivită este dată handlerului ca params.id. Framework-urile adaugă facilități peste toate acestea, dar atât acoperă nevoile de zi cu zi.


Rute și valori din cale

Două rute: lista la /users și un singur utilizator la /users/{id}. Partea dintre acolade este parametrul de cale — bucata din URL care este dată.

O rută cu un parametru de cale

Același router trimite /users către un handler și /users/7 către altul, iar matchPath dă cifra 7 handlerului ca params.id — handlerul însuși nu taie niciun șir de caractere.

Prompt
Scrie un program TypeScript cu un router mic peste node:http și două rute: GET /users care returnează o linie cu lista și GET /users/{id} al cărui handler primește id-ul ca parametru de cale. Servește-l pe portul 0, cere ambele rute cu fetch și afișează răspunsurile.
Ieșire: program TypeScript și rezultatul capturat

Parametri de interogare

Partea de după ? conține parametrii de interogare — opțiuni pentru cerere, precum un text căutat sau o limită: /search?q=api&limit=2. Ei vin din url.searchParams, mereu sub formă de șiruri de caractere, iar get() returnează null pentru unul lipsă — astfel încât ?? poate oferi o valoare implicită.

Regula practică: calea spune care resursă, interogarea spune cum — filtrare, sortare, paginare.

Citirea șirului de interogare

Handlerul citește q și limit din interogare. A doua cerere omite limit, așa că handlerul revine la 10 — parametrii lipsă sunt ceva normal, pregătește-te pentru ei.

Prompt
Scrie un program TypeScript cu un handler /search care citește parametrii de interogare q și limit din url.searchParams, folosind 10 ca limită implicită atunci când lipsește. Servește-l pe portul 0, cere-l o dată cu ambii parametri și o dată doar cu q, afișând răspunsurile.
Ieșire: program TypeScript și rezultatul capturat