Když stavíš API v Node.js, Express zjednoduší routing i middleware

From BloomWiki
Jump to navigation Jump to search


Častá chyba je záměna typu. Prohlížeč tiše převede řetězec na číslo nebo naopak, a výsledek vypadá skoro správně. Porovnávejte přesně a kontrolujte, zda funkce vrací to, co skutečně očekáváte. U pole ověřte, zda nejde o prázdnou hodnotu, než zavoláte metodu — jinak dostanete chybu, která ukazuje na jiné místo, než kde vznikl problém.

Middlewary, validace a chybové stavy Middleware je funkce se třemi parametry: req, res a next. Může logovat, ověřovat token, omezovat počet požadavků nebo upravovat data. Když uvnitř middleware zavoláš next(), pokračuje se dál; když pošleš odpověď přes res.send nebo res.json, řetěz se ukončí. Zapomenutý next() je druhá klasická chyba — požadavek zůstane viset a klient čeká, dokud nevyprší timeout. Validaci vstupů nedělej ručně v každé routě; vyčleň ji do samostatné funkce nebo použij schéma a ověřuj na jednom místě. U číselných parametrů vždy kontroluj, zda jde převést na číslo, jinak se do databázového dotazu dostane řetězec a výsledek je nesmyslný.

Node.js samo o sobě umí obsloužit HTTP požadavky přes modul http, ale ruční parsování URL, metod a těl požadavků se rychle zvrhne v nepořádek. Express přidává tenkou vrstvu, která řeší routing, middleware a práci s požadavkem i odpovědí. Instalace je krátká: vytvoř složku, spusť npm init -y a nainstaluj express. V package.json nastav "type": "module", pokud chceš používat import místo require. První server vypadá takto: import express from 'express'; const app = express(); app.use(express.json()); app.get('/zdravi', (req, res) => res.json( stav: 'ok' )); app.listen(3000). Tři řádky a máš funkční endpoint.

Nakonec nezapomeňte, že pyramida je nástroj pro lidi, dokončení interiéru ne pro počítač. Musí být srozumitelná každému, kdo ji používá. Pokud si někdo musí klást otázku, kam má zapsat nový úkol, je pyramida špatně navržená. Zjednodušte ji tak, aby se dala vysvětlit během jedné minuty. teprve pak vám ušetří čas a nebude dalším zdrojem zmatku.

Pracujte s referenčními příběhy a časovým limit

Jak správně vrstvit jednotlivé úrovně Druhá úroveň rozděluje projekt na dílčí celky – etapy, pracovní balíčky nebo funkční oblasti. Každá položka musí mít jasného vlastníka, který za ni odpovídá. Třetí úroveň pak obsahuje konkrétní činnosti, úkoly nebo dílčí výstupy. Platí pravidlo, že čím nižší úroveň, tím podrobnější informace, ale zároveň tím kratší životnost. Detaily se mění často, proto je zbytečné je napevno zapisovat do vrcholové úrovně. Udržujte vazbu: každá nižší položka musí být rekonstrukce koupelny krok za krokemřaditelná pod jednu vyšší. Pokud tomu tak není, něco je špatně a je potřeba pyramidu přestavět.

Praktický tip: používejte číslování nebo kódy, které odrážejí úroveň. Například 1.0 je celý projekt, 1.1 je první etapa, 1.1.3 je konkrétní úkol. Díky tomu se úložné prostory v malém bytě dokumentu snadno orientujete i při stovkách položek. If you beloved this short article and you would like to receive additional details with regards to návod kindly stop by our website. Vyhněte se ale přílišnému množství úrovní. Většina projektů si vystačí se třemi až čtyřmi. Pět a více úrovní už znamená, že se ztrácíte v detailu a pyramida přestává plnit svou funkci.

Vrchol pyramidy patří end-to-end scénářům. Mají být vzácné a pokrývat jen kritické cesty: přihlášení, dokončení objednávky, odeslání platby. Každý další end-to-end test prodlužuje běh a zvyšuje křehkost. Častý omyl je nahrazovat jimi integrační vrstvu – výsledkem je pomalý pipeline, který padá z nesouvisejících důvodů, a tým přestane výsledkům věřit. Když end-to-end test selže, musí být z logu okamžitě jasné, která část systému selhala. Jinak ho nikdo neopraví, jen restartuje.

Chybové stavy řeš centrálně. Express rozpozná chybový middleware podle čtyř parametrů: (err, req, res, next). Zaregistruj ho až úplně na konci, po všech routách. V asynchronous handlerech nestačí vyhodit výjimku — musíš zavolat next(err) nebo použít wrapper, protože odmítnutý promise Express sám nezachytí. Odpovědi posílej s odpovídajícím stavovým kódem: 201 po vytvoření, 204 bez těla, 400 při chybném vstupu, 404 když záznam neexistuje a 500 při neočekávané chybě. Nikdy neposílej dvě odpovědi na jeden požadavek, jinak dostaneš varování o zahlavi, které už bylo odesláno.

Produkční nasazení přináší další úskalí. Express sám neumí HTTPS ani kompresi — postav ho za reverzní proxy, která to vyřeší. Nastav trust proxy, pokud čteš IP adresu klienta, jinak dostaneš adresu proxy. Statické soubory podávej přes express.static a omez jejich cestu, aby se nedalo projít mimo povolený adresář. Pro větší projekty rozděl routy do samostatných souborů a používej Router; jeden dlouhý soubor se po pár týdnech stane nečitelným. Drž se zásady, že každá routa dělá jednu věc, a logiku přesouvej do služeb, které jde testovat bez HTTP.