Opprettelse av et databol for produkt i Redux

Vi har allerede en funksjon for å opprette et selgerobjekt, la oss gå videre til produktet. Opprettelsen av dette objektet vil være litt mer komplisert, siden det inneholder flere datafelt. La oss komme i gang.

La oss åpne vår produktapplikasjon, og i den, filen server.js. Under funksjonen getRandInt skal vi skrive vår funksjon createProductData:

api/server.jsconst createProductData = () => {}

La oss nå definere de nødvendige egenskapene. Verdier for name, price og amount vil vi generere ved hjelp av getRandInt, som vi skrev i forrige leksjon:

api/server.jsconst createProductData = () => {
  return {
    name: `Product${getRandInt(0, 100)}`,
    price: getRandInt(100, 2000),
    amount: getRandInt(1, 50),
  }
}

Og for å generere en beskrivelse, vil vi bruke en annen nyttig ting. Dette er biblioteket faker, som muliggjør generering av falske navn, adresser, e-poster, gatenavn, tekster osv. på forskjellige språk. La oss skrive følgende i terminalen og installere dette biblioteket for vår applikasjon:

terminalnpm install @faker-js/faker --save-dev

Og deretter importere det i vår fil:

api/server.jsimport { faker } from '@faker-js/faker'

La oss bruke dens generering av setninger som inneholder den velkjente "fylleteksten" 'Lorem ipsum'. La beskrivelsen inneholde fra 3 til 5 slike setninger:

api/server.jsconst createProductData = () => {
  return {
    name: `Product${getRandInt(0, 100)}`,
    desc: faker.lorem.sentences({ min: 3, max: 5 }),
    price: getRandInt(100, 2000),
    amount: getRandInt(1, 50),
  }
}

La oss nå legge til et felt for reaksjoner i objektet vårt, vi vil tilordne det et, på stedet generert med kommandoen create, objekt (reaksjoner vil foreløpig være 0 hver):

api/server.jsconst 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(),
  }
}

Og som siste egenskap legger vi til det allerede genererte selgerobjektet, som vi må sende som en parameter til funksjonen createProductData. Slik ser den fullstendige koden for funksjonen for opprettelse av produktobjektet ut:

api/server.jsconst 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,
  }
}
Задание 1

Åpne applikasjonen din med studenter. Etter å ha sett på materialet i denne leksjonen, skriv en funksjon for å opprette et objekt med studentdata.