Erstellung eines Datenobjekts für ein Produkt in Redux

Wir haben die Funktion zur Erstellung eines Verkäuferobjekts, kommen wir nun zum Produkt. Die Erstellung dieses Objekts wird ein bisschen komplexer sein, da es mehr Datenfelder enthält. Fangen wir an.

Lassen Sie uns unsere Produktanwendung öffnen, und darin die Datei server.js. Unterhalb der Funktion getRandInt schreiben wir unsere Funktion createProductData:

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

Jetzt schreiben wir die benötigten Eigenschaften. Werte für name, price und amount generieren wir mit Hilfe von getRandInt, die wir in der letzten Lektion geschrieben haben:

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

Und um eine Beschreibung zu generieren, werden wir ein weiteres nützliches Tool verwenden. Das ist die Bibliothek faker, die es ermöglicht, gefälschte Namen, Adressen, E-Mails, Straßennamen, Texte usw. in verschiedenen Sprachen zu generieren. Lassen Sie uns im Terminal die folgende Zeile eingeben und diese Bibliothek für unsere Anwendung installieren:

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

Und dann importieren wir sie in unsere Datei:

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

Lassen Sie uns daraus die Generierung von Sätzen nutzen, die den bekannten Platzhaltertext 'Lorem ipsum' enthalten. Lassen Sie die Beschreibung zwischen 3 und 5 solcher Sätze enthalten:

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

Jetzt fügen wir unserem Objekt ein Feld für Reaktionen hinzu, als Wert übergeben wir ihm ein direkt mit dem Befehl create generiertes Objekt (die Reaktionen darin werden zunächst 0 sein):

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

Und als letzte Eigenschaft fügen wir das bereits generierte Verkäuferobjekt hinzu, das wir unbedingt als Parameter an die Funktion createProductData übergeben müssen. So sieht der vollständige Code der Funktion zur Erstellung des Produktobjekts aus:

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

Öffnen Sie Ihre Anwendung mit den Studenten. Nachdem Sie den Stoff dieser Lektion durchgearbeitet haben, schreiben Sie eine Funktion zur Erstellung eines Objekts mit Studentendaten.