Databáze pro server v Reduxu
V minulé lekci jsme nainstalovali msw, který nám pomůže simulovat práci naší aplikace se serverem. A pro začátek bychom chtěli při spuštění aplikace načíst data, která již na serveru jsou.
Pojďme otevřít naši aplikaci s produkty,
a v ní soubor server.js. Zde již máme
pár řádků kódu z minulé lekce.
A první, co bychom se měli zeptat: kde se obvykle data ukládají? Ano, samozřejmě v databázi, odpovíme bez zaváhání. Proto použijme další skvělý nástroj, který nám umožní vytvořit model našich dat, a také to zařídit, jako bychom pracovali s opravdovou SQL databází.
Nástroj, který nám s tím pomůže - je knihovna @mswjs/data. Pro její instalaci zadejte v terminálu následující příkaz:
npm install @mswjs/data --save-dev
Nyní importujme v souboru server.js
potřebné věci:
import { factory, oneOf, manyOf, primaryKey } from '@mswjs/data'
A vytvořme naši improvizovanou databázi.
K tomu použijeme funkci
factory. Uděláme to níže po
řádcích s importem a před exportem workera:
export const db = factory({})
A jaká data v ní budeme ukládat?
Ze serveru bychom měli dostávat produkty,
prodejce a reakce uživatelů. To znamená,
že v naší databázi musíme vytvořit
tři modely, které factory
přijímá ve formě objektů:
export const db = factory({
product: {},
seller: {},
reaction: {},
})
Stejně jako v opravdové SQL databázi každý
náš model musí mít primary key.
Tradičně nastavíme takové pole jako id,
generovat který budeme opět stejnou
nanoid knihovnou:
export const db = factory({
product: {
id: primaryKey(nanoid),
},
seller: {
id: primaryKey(nanoid),
},
reaction: {
id: primaryKey(nanoid),
},
})
Nezapomeňme přidat nanoid v řádcích importu na začátku souboru:
import { nanoid } from '@reduxjs/toolkit'
V příští lekci doplníme naše modely o potřebná pole.
Otevřete vaši aplikaci se studenty. Po seznámení s materiálem této lekce nainstalujte @mswjs/data pro vaši aplikaci.
Dále vytvořte model databáze db pomocí
funkce factory. Předejte jí tři
objekty (student, teacher, vote) pro
vaše data, podobně jako je ukázáno
v lekci.