Tworzenie wpisów w bazie danych w Redux
Na poprzednich zajęciach przygotowaliśmy wszystko, aby wypełnić naszą bazę danych. Zabierzmy się do tego.
Otwórzmy naszą aplikację z produktami,
a w niej plik server.js. Najpierw
zdecydujmy, ile i jakich obiektów z danymi
potrzebujemy. Sprzedawców mamy 4, niech na każdego
z nich przypada po 3 produktów. Wprowadźmy
w tym celu dwie stałe zaraz po wierszach
z importem:
const NUM_SELLERS = 4
const PRODS_PER_SELLER = 3
Teraz na końcu pliku przed eksportem workera
wykonajmy pętlę for, w której za pomocą
create utworzymy wpisy w bazie danych
dla naszych 4 sprzedawców:
for (let i = 0; i < NUM_SELLERS; i++) {
const newSeller = db.seller.create(createSellerData(i))
}
Na każdego sprzedawcę przypada u nas 3
produktów, dlatego w pętli dla sprzedawców
wykonamy jeszcze jedną zagnieżdżoną pętlę for, w której
będziemy tworzyć wpisy dla produktów:
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)
}
}
Doskonale! Na tym zakończyliśmy pracę z bazą danych.
Pozostało nam tylko zrobić jeszcze jedną
rzecz. Potrzebujemy, aby w obiekcie z
produktem w polu seller przekazywane było
id sprzedawcy. Napiszmy poniżej po pętlach
for jeszcze jedną funkcję
serializeProduct, w której
będziemy dodawać to id:
const serializeProduct = (product) => ({
...product,
seller: product.seller.id,
})
Otwórz twoją aplikację ze studentami.
Niech będzie trzech nauczycieli, a
na każdego z nich przypada 3 studentów.
Zapoznawszy się z materiałem z tej lekcji,
skorzystaj z pętli for i utwórz
w bazie danych 3 wpisy z nauczycielami.
Następnie wykonaj drugą pętlę for wewnątrz pętli
z poprzedniego zadania, za pomocą której
utwórz 3 studentów.
Po zagnieżdżonych pętlach for napisz funkcję
serializeStudent, jak pokazano na lekcji,
która będzie wprowadzać do pola teacher id
nauczyciela.