Redux сервер учун база
Ўтган дарсимизда биз msw ўрнатиб олган эдик, у бизга иловамизнинг сервер билан ишлашини симуляция қилишга ёрдам беради. Ва бошлаш учун биз илова ишга тушганида серверда аллакач мавжуд булган маълумотларни юклаб олишни хохлар эдик.
Келинг, маҳсулотларимиз бор илованимизни очайлик,
ундаги server.js файлини очинг. Бу ерда бизда
ўтган дарсдан бир неча сатр код аллакач
мавжуд.
Ва биринчи савол: оддата маълумотлар қаерда сақланади? Ҳа, албатта маълумотлар базасида, деб жавоб берамиз ўйлаб кўрмай. Шунинг учун яна бир ажойиб воситадан фойдаланайлик, у бизга маълюмотларимизнинг моделини яратишга имкон беради, шунингдек, биз хақиқий SQL-база билан ишлаётганимиздек қилиб кўрсатади.
Буда бизга ёрдам берадиган восита - бу @mswjs/data кутубхонаси. Уни ўрнатиш учун, терминалда куйидаги буйруқни киритинг:
npm install @mswjs/data --save-dev
Энди server.js файлида керакли
нарсаларни импорт қиламиз:
import { factory, oneOf, manyOf, primaryKey } from '@mswjs/data'
Ва бизнинг импровизация қилинган базамизни
яратамиз. Буни учун биз factory функциясидан
фойдаланамиз. Биз буни импорт сатрларидан кейин
ва воркерни экспорт қилишдан олдин қиламиз:
export const db = factory({})
Ва биз унда қандай маълумотлар сақлаймиз?
Сервердан биз маҳсулотлар,
сотувчилар ва фойдаланувчи реакцияларини олишимиз керак.
Демак, маълумотлар базамизда биз
учта модель яратишимиз керак, у factory томонидан
объектлар кўринишида қабул қилинади:
export const db = factory({
product: {},
seller: {},
reaction: {},
})
Хақиқий SQL маълумотлар базасидаги каби
ҳар бир моделимизда primary key бўлиши керак.
Одатда, биз id ни шундай майдон қилиб белгилаймиз,
уни яратиш учун биз яна наноид кутубхонасидан фойдаланамиз:
export const db = factory({
product: {
id: primaryKey(nanoid),
},
seller: {
id: primaryKey(nanoid),
},
reaction: {
id: primaryKey(nanoid),
},
})
Файл бошланишидаги импорт сатрларига nanoid ни ҳам қўшшиб унутинг:
import { nanoid } from '@reduxjs/toolkit'
Кейинги дарсда биз моделларимизни керакли майдонлар билан тўлдирамиз.
Ўқувчиларингиз бор илованингизни очинг. Бу дарс материали билан танишиб чиққач, иловангиз учун @mswjs/data ни ўрнатинг.
Кейин factory функцияси ёрдамида
маълумотлар базаси db моделини яратинг.
Унга дарсда кўрсатилганидек, учта
объект (student, teacher, vote) беринг.