База на податоци за серверот во Redux

На претходното предавање инсталиравме msw, кој ќе ни помогне да ја имитираме работата на нашата апликација со серверот. И за почеток би сакале при стартување на апликацијата веќе постоечките податоци на серверот да се вчитаат.

Ајде да ја отвориме нашата апликација со производи, а во неа датотеката server.js. Овде веќе имаме неколку линии код од претходното предавање.

И првото нешто што треба да се запрашаме: каде обично се чуваат податоците? Да, секако во база на податоци, ќе одговориме без да размислуваме. Затоа ајде да користиме уште еден одличен алатка, која ќе ни овозможи да креираме модел на нашите податоци, а исто така да направиме така како да работиме со вистинска SQL-база.

Алатката, која ќе ни помогне во ова - е библиотеката @mswjs/data. За да ја инсталирате, внесете во терминалот следнава команда:

terminalnpm install @mswjs/data --save-dev

Сега да импортираме во датотеката server.js потребните нешта:

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

И да ја создадеме нашата импровизирана база на податоци. За ова ќе ја користиме функцијата factory. Ќе го направиме ова подолу после линиите со импортот и пред експортот на работникот:

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

А кои податоци ќе ги чуваме во неа? Од серверот треба да добиваме производи, продавачи и реакции на корисниците. Значи во нашата база на податоци треба да создадеме три модела, кои factory ги прима во вид на објекти:

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

Како и во вистинска SQL база на податоци секој наш модел мора да има primary key. Традиционално, такво поле ќе го назначиме id, кој ќе го генерираме со истата nanoid библиотека:

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

Да не заборавиме да додадеме nanoid во линиите на импортот на почетокот на датотеката:

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

На следната лекција ќе ги дополниме нашите модели со потребните полиња.

Задание 1

Отворете ја вашата апликација со студенти. Запознајќи се со материјалот од оваа лекција, инсталирајте @mswjs/data за вашата апликација.

Задание 2

Потоа создадете модел на база на податоци db со помош на функцијата factory. Пренесете ѝ три објекти (student, teacher, vote) за вашите податоци, слично како што е прикажано во лекцијата.