Baza podataka za server u Redux-u

Na prošlom času smo instalirali msw, koji će nam pomoći da oponašamo rad naše aplikacije sa serverom. I za početak želeli bismo da pri pokretanju aplikacije učitamo postojeće podatke sa servera.

Hajde da otvorimo našu aplikaciju sa proizvodima, a u njoj fajl server.js. Ovde već imamo par linija koda sa prošlog časa.

I prvo što bismo trebali da se zapitamo: gde se obično čuvaju podaci? Da, naravno u bazi podataka, odgovorićemo bez razmišljanja. Stoga hajde da iskoristimo još jedan sjajan alat, koji će nam omogućiti da napravimo model naših podataka, kao i da učinimo kao da radimo sa pravom SQL bazom.

Alat koji će nam u tome pomoći - je biblioteka @mswjs/data. Da bismo je instalirali, ukucajte u terminalu sledeću komandu:

terminalnpm install @mswjs/data --save-dev

Sada uvezimo u fajl server.js potrebne stvari:

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

I napravićemo našu improvizovanu bazu podataka. Za to ćemo koristiti funkciju factory. Uradićemo to ispod posle linija sa uvozom i pre izvoza workera:

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

A koje podatke ćemo u njoj čuvati? Sa servera bismo trebali dobijati proizvode, prodavce i reakcije korisnika. Znači u našoj bazi podataka treba da napravimo tri modela, koje factory prihvata u obliku objekata:

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

Kao i u pravoj SQL bazi podataka svaki naš model mora imati primary key. Tradicionalno, odredićemo takvo polje kao id, koji ćemo generisati istom onom nanoid bibliotekom:

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

Ne zaboravimo da dodamo nanoid u linijama uvoza na početku fajla:

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

Na sledećoj lekciji ćemo dopuniti naše modele potrebnim poljima.

Задание 1

Otvorite vašu aplikaciju sa studentima. Nakon upoznavanja sa materijalom ove lekcije, instalirajte @mswjs/data za vašu aplikaciju.

Задание 2

Zatim napravite model baze podataka db uz pomoć funkcije factory. Prosledite joj tri objekta (student, teacher, vote) za vaše podatke, slično kao što je pokazano na lekciji.