# База данных для сервера в 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`, генерировать который мы будем все той же nanoid библиотекой:

`export const db = factory({ product: { id: primaryKey(nanoid), }, seller: { id: primaryKey(nanoid), }, reaction: { id: primaryKey(nanoid), }, })`

Не забудем добавить nanoid в строчках импорта в начале файла:

`import { nanoid } from '@reduxjs/toolkit'`

На следующем уроке мы дополним наши модели необходимыми полями.

Откройте ваше приложение со студентами. Ознакомившись с материалом этого урока, установите @mswjs/data для вашего приложения.

Далее создайте модель базы данных `db` при помощи функции `factory`. Передайте ей три объекта (`student`, `teacher`, `vote`) для ваших данных, подобно тому как показано в уроке.

← →
↑