Editing
Jak Postavit REST API S Node.js A Express
Jump to navigation
Jump to search
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
<br>Častým problémem je zapomenout na to, že async akce vrací Promise. V testu proto vždy použijte await na zavolání akce, jinak se test ukončí dřív, než se akce dokončí, a vy dostanete falešný průchod. Dále pozor na to, že pokud používáte Redux Toolkit, createAsyncThunk generuje akce pending, fulfilled a rejected automaticky – testujte je podle názvu, ne podle řetězce typu 'users/fetch/pending'.<br><br>COPY package*.json ./<br><br>Při návrhu endpointů se vyhněte slovesům v URL. Není REST, když máte /getUser nebo /createUser. Místo toho použijte metodu HTTP a název zdroje. Pro získání uživatele tedy stačí GET /users/5, pro smazání DELETE /users/5. Dále nezapomeňte na validaci dat. Express sám o sobě žádnou nemá. Použijte knihovnu jako Joi nebo vlastní funkce. Pokud přijdou neplatná data, vraťte 400 s popisem chyby. Jinak riskujete, že se vám do databáze dostanou nesmysly, které později zkazí celou aplikaci.<br>Nejprve si vytvořte základní server. Stačí inicializovat npm projekt, nainstalovat Express a napsat pár řádků: const express = require('express'); const app = express(); app.use(express.json());. Důležitý je řádek s express.json() – bez něj byste nezachytili JSON tělo požadavku. Pak definujte první routy. Vždy používejte správný status kód: pro úspěšné vytvoření zdroje vraťte 201, pro chybu klienta 400, pro neexistující zdroj 404. Častým začátečnickým omylem je vracet 200 i při chybě – tím klienta matete.<br><br>Základním krokem je výběr vhodného nástroje, který ve vašem programovacím jazyce podporuje měření pokrytí. U jazyků jako Java, Python nebo JavaScript existuje několik standardních knihoven, které generují reporty ve formátu HTML nebo XML. Po každém spuštění testů byste měli mít k dispozici číslo vyjadřující procento pokrytí, ale také detailní přehled o tom, které části kódu zůstaly nepokryté. Tento přehled je mnohem cennější než samotné procento, protože vám ukáže konkrétní místa, kde hrozí chyby. Analyzujte jej pravidelně, ideálně po každém pushi [https://citiesofthedead.net/index.php/UI/UX_pro_v%C3%BDvoj%C3%A1%C5%99e:_praktick%C3%BD_pr%C5%AFvodce_bez_zbyte%C4%8Dn%C3%A9_teorie barvy stěn do obýváku] sdíleného repozitáře.<br><br>Při psaní kódu dbejte na čitelnost – odsazujte vnořené elementy, používejte smysluplné názvy tříd (např. .menu-polozka místo .a1) a komentujte složitější části. Dobrý kód není jen funkční, ale i srozumitelný pro vás za půl roku i pro případné kolegy. Pokud narazíte na problém, hledejte řešení v dokumentaci přímo na webu prohlížeče, ne v zastaralých fórech. S trochou praxe zvládnete základy HTML a CSS rychle a budete na nich moci stavět moderní a přístupné weby.<br><br>Async akce: mockujte API, ne testujte reálné volání Async akce v Redux Thunk nebo Redux Toolkit (createAsyncThunk) jsou funkce, které dostávají dispatch a getState. Klíčové je oddělit testování logiky od reálných HTTP volání. Použijte mock pro API vrstvu – místo skutečného fetch použijte funkci, která vrací předem definovaná data nebo vyhazuje chybu. V testu zavolejte async akci s mockovaným dispatch a getState, pak počkejte na dokončení a ověřte, jaké akce byly dispatchovány.<br><br>Stavba REST API v Node.js s frameworkem Express je běžná praxe, ale i tak se v ní snadno udělá několik zásadních chyb. Začneme od základu – od inicializace projektu a instalace potřebných balíčků. Kromě samotného Expressu se vyplatí použít i balíček pro parsování těla požadavků (např. body-parser) a pro logování požadavků (např. morgan). Tyto nástroje vám ušetří spoustu ruční práce a zpřehlední ladění.<br><br>Na závěr si osvojte responzivní design. Místo pevných pixelů pro šířku používejte relativní jednotky (%, em, rem, vw, vh). Pro text je vhodný rem, protože respektuje výchozí velikost písma prohlížeče. Vždy nastavte meta viewport v hlavičce, bez něj se mobilní prohlížeče snaží zobrazit stránku jako na počítači. Testujte svůj web ve více prohlížečích a na [https://Pinterest.com/search/pins/?q=r%C5%AFzn%C3%BDch různých] zařízeních, nejen v tom, který používáte. Nástroje pro vývojáře vám umožní simulovat telefony i tablety.<br><br>Nejčastější chyby a jak se jim vyhnout Jednou z největších pastí je asynchronní zpracování. Pokud používáte async/await, vždy obalte routy do try-catch. Jinak při chybě Express spadne a server se ukončí. Alternativně použijte wrapper, který zachytí rejected promise. Dále si dejte pozor na správné řazení middleware – pokud chcete logovat požadavky, musíte to udělat před routami. Pokud chcete ověřovat token, musíte to udělat před ochráněnými endpointy.<br><br>Jádrem každého API jsou routy. V Expressu definujete jednotlivé endpointy pomocí metod GET, POST, PUT a DELETE. Pro začátek si vytvořte jednoduchou routu, která vrací JSON data. Pozor na to, že Express sám o sobě neumí zpracovat tělo požadavku ve formátu JSON – proto je nutné použít middleware express.json(). Bez něj byste v req.body dostali undefined. Dalším častým problémem je nesprávné nastavení CORS, zejména pokud API voláte z prohlížeče. Pokud CORS nenastavíte, prohlížeč vám odpověď zablokuje.<br><br>For those who have virtually any questions regarding where by and the way to utilize [https://Wiki.ai-AR.Kz/index.php?title=User:EvangelineKater koukněte sem], you are able to e-mail us on the site.<br>
Summary:
Please note that all contributions to Rikkiepedia may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Rikkiepedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Navigation menu
Personal tools
Not logged in
Talk
Contributions
Create account
Log in
Namespaces
Page
Discussion
English
Views
Read
Edit
View history
More
Search
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Tools
What links here
Related changes
Page information