Podatkovna baza za strežnik v Redux

V prejšnji lekciji smo namestili msw, ki nam bo pomagal simulirati delo naše aplikacije s strežnikom. In za začetek bi želeli, da se ob zagonu aplikacije naložijo že obstoječi podatki na strežniku.

Odprimo našo aplikacijo s produkti, in v njej datoteko server.js. Tukaj že imamo nekaj vrstic kode iz prejšnje lekcije.

In prvo vprašanje, ki si ga moramo zastaviti: kje se običajno shranjujejo podatki? Da, seveda v podatkovni bazi, bomo odgovorili brez razmišljanja. Zato uporabimo še eno odlično orodje, ki nam bo omogočilo ustvariti model naših podatkov, in tudi narediti tako, kot da delamo s pravo SQL bazo.

Orodje, ki nam bo pri tem pomagalo - je knjižnica @mswjs/data. Da jo namestimo, vtipkajmo v terminal naslednji ukaz:

terminalnpm install @mswjs/data --save-dev

Zdaj uvozimo v datoteko server.js potrebne stvari:

api/server.jsimport { factory, oneOf, manyOf, primaryKey } from '@mswjs/data'

In ustvarimo našo improvizirano podatkovno bazo. Za to bomo uporabili funkcijo factory. Naredili bomo to spodaj za vrsticami z uvozom in pred izvozom workerja:

api/server.jsexport const db = factory({})

In katere podatke bomo shranjevali v njej? S strežnika moramo prejemati produkte, prodajalce in reakcije uporabnikov. Torej moramo v naši podatkovni bazi ustvariti tri modele, ki jih factory sprejme v obliki objektov:

api/server.jsexport const db = factory({
  product: {},
  seller: {},
  reaction: {},
})

Kot v pravi SQL podatkovni bazi mora vsak naš model imeti primary key. Tradicionalno bomo za to polje določili id, ki ga bomo generirali z isto knjižnico nanoid:

api/server.jsexport const db = factory({
  product: {
    id: primaryKey(nanoid),
  },
  seller: {
    id: primaryKey(nanoid),
  },
  reaction: {
    id: primaryKey(nanoid),
  },
})

Ne pozabimo dodati nanoid v vrstice uvoza na začetku datoteke:

api/server.jsimport { nanoid } from '@reduxjs/toolkit'

V naslednji lekciji bomo naše modele dopolnili z zahtevanimi polji.

Задание 1

Odprite vašo aplikacijo s študenti. Po seznanitvi z gradivom te lekcije, namestite @mswjs/data za vašo aplikacijo.

Задание 2

Nato ustvarite model podatkovne baze db s pomočjo funkcije factory. Podajte ji tri objekte (student, teacher, vote) za vaše podatke, podobno kot je prikazano v lekciji.