Создание объекта с данными продукта в Redux
Функция для создания объекта с продавцом у нас есть, перейдем к продукту. Создание этого объекта будет чуточку сложнее, поскольку он содержит больше полей с данными. Приступим.
Давайте откроем наше приложение с продуктами,
а в нем файл server.js
. Ниже после
функции getRandInt
напишем нашу функцию
createProductData
:
const createProductData = () => {}
Теперь пропишем нужные нам свойства. Значения
для name
, price
и amount
мы сгенерируем при помощи getRandInt
,
которую мы написали на прошлом уроке:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
А для того, чтобы сгенерировать описание, мы воспользуемся еще одной полезной штукой. Это библиотека faker, которая позволяет генерировать фейковые имена, адреса, мэйлы, названия улиц, тексты и пр. на разных языках. Давайте введем в терминале следующую строку и установим эту библиотечку для нашего приложения:
npm install @faker-js/faker --save-dev
А затем импортируем в наш файл:
import { faker } from '@faker-js/faker'
Давайте воспользуемся в ней генерацией
предложений, содержащими общеизвестный
текст-"рыбу" 'Lorem ipsum'
. Пусть
описание содержит от 3
до 5
таких предложений:
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
desc: faker.lorem.sentences({ min: 3, max: 5 }),
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
}
}
Теперь добавим в наш объект поле с реакциями,
значением ему мы передадим, сгенерированный
на месте командой create
, объект (реакции
пока в нем будут по 0
):
const createProductData = () => {
return {
name: `Product${getRandInt(0, 100)}`,
desc: faker.lorem.sentences({ min: 3, max: 5 }),
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
reactions: db.reaction.create(),
}
}
И последним свойством добавим уже
сгенерированный объект продавца, который
мы обязательно должны передать параметром
в функцию createProductData
. Вот так
выглядит полный код функции создания объекта
продукта:
const createProductData = (seller) => {
return {
name: `Product${getRandInt(0, 100)}`,
desc: faker.lorem.sentences({ min: 3, max: 5 }),
price: getRandInt(100, 2000),
amount: getRandInt(1, 50),
reactions: db.reaction.create(),
seller,
}
}
Откройте ваше приложение со студентами. Ознакомившись с материалом этого урока, напишите функцию для создания объекта с данными студента.