Tietueiden luominen tietokantaan Reduxissa
Edellisillä tunneilla valmistelimme kaiken datan täyttämiseksi. Aloitetaan.
Avataan tuotesovelluksemme
ja sen sisällä tiedosto server.js. Ensin
päätetään kuinka monta ja minkälaisia data-objekteja
tarvitsemme. Myyjiä meillä on 4, olkoon jokaisella
heistä 3 tuotetta. Määritellään
tätä varten kaksi vakiota heti import-rivien
jälkeen:
const NUM_SELLERS = 4
const PRODS_PER_SELLER = 3
Nyt tiedoston lopussa ennen workerin vientiä
teemme for-silmukan, jossa avulla
create luomme tietueita tietokantaan
4 myyjäämme varten:
for (let i = 0; i < NUM_SELLERS; i++) {
const newSeller = db.seller.create(createSellerData(i))
}
Jokaisella myyjällä meillä on 3
tuotetta, joten teemme myyjien silmukkaan
toisen sisäkkäisen for-silmukan, jossa
luomme tietueita tuotteille:
for (let i = 0; i < NUM_SELLERS; i++) {
const newSeller = db.seller.create(createSellerData(i))
for (let j = 0; j < PRODS_PER_SELLER; j++) {
const newProduct = createProductData(newSeller)
db.product.create(newProduct)
}
}
Erinomaista! Tällä olemme päättäneet työn tietokannan kanssa.
Meidän on tehtävä vielä yksi
asia. Haluamme, että tuoteobjektissa
kenttään seller välitetään
myyjän id. Kirjoitetaan for-silmukoiden alle
vielä yksi funktio
serializeProduct, jossa me
lisäämme tämän id:n:
const serializeProduct = (product) => ({
...product,
seller: product.seller.id,
})
Avaa opiskelijasovelluksesi.
Olkoon sinulla kolme opettajaa, ja
jokaisella heistä on 3 opiskelijaa.
Tutustuttuasi tämän oppitunnin materiaaliin,
hyödynnä for -silmukkaa ja luo
tietokantaan 3 tietuetta opettajista.
Seuraavaksi tee toinen for -silmukka edellisen tehtävän silmukan
sisään, jonka avulla
luot 3 opiskelijaa.
Sisäkkäisten for -silmukoiden jälkeen kirjoita funktio
serializeStudent, kuten oppitunnilla on esitetty,
joka lisää kenttään teacher
opettajan id:n.