Express 3

29. hodina DVOP WBB


Matěj Cajthaml — SSPŠ

©

Opakování

Co je to CORS?
Jaké metody existují v HTTP?
Co je to Git?
Jaké známe formáty předávání dat?
K čemu slouží Promise? Jak s nimi pracujeme?

Middleware

Middleware

  • jedná se o funkci
  • přijímá většinou 3 parametry:
    • request — požadavek
    • response — odpověď
    • next — další funkci ve volání

Kaskáda

  • jednotlivé funkce jsou volány postupně
  • při zavolání funkce next() se zavolá další funkce v pořadí
  • ukončuje se taktéž pomocí volání res.send() a obdobných

Využití middlewares

  • spouštění kódu
  • validace požadavků
  • logování
  • autentizace a autorizace

Definice funkce

Pokročilejší funkce

S middleware jsme se již setkali — samotné volání app.METODA() jako druhý parametr middleware přijímá.

Na přidání middleware do pořadí stačí zavolat app.METODA() a nebo app.use(). Jednotlivé endpointy v app.METODA() mohou příjímat více middlewares.

Použití pomocí use

Použití v endpointu

Pokročilá kaskáda

Middleware umí zamítnout požadavek a nebo požadavek či odpověď serveru změnit a předávat tím data do dalších volání middlewares.

Počítadla

Pokročilé middleware

Dříve uvedený middleware není obecný. Proč? Jak to opravíme?

Pokročilé middleware

Práce

Opravte výše uvedený middleware tak, aby příjímal parametr pro požadovanou hlavičku.

Pokročilé middleware s polem

Práce

Opravte výše uvedený middleware tak, aby příjímal parametr a nebo pole pro požadované hlavičky.

Middleware k dispozici

  • express-rate-limit
  • compression
  • multer
  • timeout

Další middleware

Práce

Zkuste najít další zajímavý middleware. Zjistěte, jak se používá.

Routery

Aktuálně, když použijeme app.use, tak je middleware volána na všech následujících endpointech. Co bychom dělali, kdybychom ji na jednom endpointu nechtěli?

Routery

  • způsob, jak rozdělit express aplikaci do podčástí
  • každá část odpovídá na nějaký záčátek url, např. /user
  • uvnitř jsou schovány middleware a nedostávají se mimo

Vytvoření routeru

Zamezení middleware

Routery se používají i na rozdělení aplikace do menších částí — souborů.

Rozdělení routerů

Práce

Pro každý router vytvořte samostatný soubor a vytvořte v něm router. Vytvořte všechny potřebné endpointy a připojte je do hlavního routeru.

Základní autentifikace

Práce

Vytvořte API, které bude v hlavičce přijímat přístupové údaje, které budou potřeba pro jakoukoliv komunikaci mimo endpoint GET /ping.

API bude sloužit ke správně neurčitých dat. Tedy minimálně CRUD.

Děkuji za pozornost!

  • matej.cajthaml@ssps.cz
  • https://ssps.cajthaml.eu/