Duomenų bazė serveriui Redux
Ankstesnėje pamokoje mes įdiegėme msw, kuris mums padės imituoti mūsų programos veikimą su serveriu. Ir pirmiausia mes norėtume, kad paleidus programą būtų užkraunami jau esantys serveryje duomenys.
Atidarykime mūsų programą su produktais,
o joje failą server.js. Čia mes jau
turime porą kodo eilučių iš ankstesnės
pamokos.
Ir pirmas dalykas, kurį turime savęs paklausti: kur dažniausiai saugomi duomenys? Taip, žinoma, duomenų bazėje, atsakysime nedvejodami. Todėl panaudokime dar vieną puikų įrankį, kuris lems mums sukurti mūsų duomenų modelį, o taip pat padaryti taip, tarsi mes dirbtume su tikra SQL baze.
Įrankis, kuris mums tuo padės - tai biblioteka @mswjs/data. Kad ją įdiegtumėte, terminale įveskite šią komandą:
npm install @mswjs/data --save-dev
Dabar importuokime faile server.js
mums reikalingus dalykus:
import { factory, oneOf, manyOf, primaryKey } from '@mswjs/data'
Ir sukurkime mūsų improvizuotą duomenų
bazę. Tam mes panaudosime funkciją
factory. Tai atliksime žemiau po
importuojamų eilučių ir prieš eksportuojant worker'į:
export const db = factory({})
O kokius duomenis mes joje saugosime?
Iš serverio mes turime gauti produktus,
pardavėjus ir vartotojų reakcijas. Vadinasi,
mūsų duomenų bazėje mes turime sukurti
tris modelius, kuriuos factory
priima kaip objektus:
export const db = factory({
product: {},
seller: {},
reaction: {},
})
Kaip ir tikroje SQL duomenų bazėje, kiekvienas
mūsų modelis turi turėti primary key.
Tradiciškai, mes paskirsime tokį lauką id,
kursį generuosime ta pačia
nanoid biblioteka:
export const db = factory({
product: {
id: primaryKey(nanoid),
},
seller: {
id: primaryKey(nanoid),
},
reaction: {
id: primaryKey(nanoid),
},
})
Nepamirškime pridėti nanoid importuojamose eilutėse failo pradžioje:
import { nanoid } from '@reduxjs/toolkit'
Kitoje pamokoje mes papildysime mūsų modelius reikalingais laukais.
Atidarykite savo programą su studentais. Susipažinę su šios pamokos medžiaga, įdiekite @mswjs/data savo programai.
Tada sukurkite duomenų bazės modelį db
naudodami funkciją factory. Perduokite jai tris
objektus (student, teacher, vote)
savo duomenims, panašiai kaip parodyta
pamokoje.