Oprettelse af objekt med produktdata i Redux

Vi har allerede en funktion til at oprette et objekt med sælger, lad os gå videre til produktet. Oprettelsen af dette objekt vil være en lille smule mere komplekst, fordi det indeholder flere felter med data. Lad os komme i gang.

Lad os åbne vores produktapplikation, og i den filen server.js. Nedenfor efter funktionen getRandInt skriver vi vores funktion createProductData:

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

Lad os nu definere de nødvendige egenskaber. Værdier for name, price og amount vil vi generere ved hjælp af getRandInt, som vi skrev i den forrige lektion:

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

Og for at generere en beskrivelse, vil vi bruge en anden nyttig ting. Det er biblioteket faker, som gør det muligt at generere falske navne, adresser, e-mails, gadenavne, tekster osv. på forskellige sprog. Lad os indtaste følgende i terminalen og installere dette bibliotek til vores applikation:

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

Og derefter importere det i vores fil:

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

Lad os bruge dens generering af sætninger, der indeholder den velkendte "fyldtekst" 'Lorem ipsum'. Lad beskrivelsen indeholde fra 3 til 5 sådanne sætninger:

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),
  }
}

Lad os nu tilføje et felt med reaktioner til vores objekt, vi vil give det en værdi, genereret på stedet med kommandoen create, et objekt (reaktioner vil indtil videre være 0 i det):

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 den sidste egenskab tilføjer vi det allerede genererede sælgerobjekt, som vi absolut skal sende som en parameter til funktionen createProductData. Sådan ser den fulde kode for funktionen til oprettelse af produktobjektet ud:

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

Åbn din applikation med studerende. Efter at have gennemgået materialet i denne lektion, skriv en funktion til at oprette et objekt med studerendedata.