Definiujemy model danych, w którym mamy dwa parametry: title i tags. Oba są wymagane. Przy czym title to zwykły ciąg znaków, a tags to zwykła tablica tekstowa.
Poniżej znajduje się fragment kodu, który sprawdza poprawność danych w modelu i próbuje dodać nowy rekord do bazy danych:
Pytanie: czy metoda validateSync powinna zwrócić jakieś błędy/błąd walidacji? Czy wszystko tutaj jest ok? Do modelu przekazujemy jedno pole: title, które jest wymagane. Nie przekazaliśmy jednak pola: tags, które także jest wymagane. Więc odpowiedź jest prosta! Zwróci błąd walidacji!
To nieprawda. Rekord zostanie dodany do bazy.
Jak to możliwe?
Walidacja wymaganej tablicy
Żeby dowiedzieć się, co się stało, sprawdźmy zawartość bazy danych. Okazuje się, że pole tags to pusta tablica!
Jeśli w modelu danych zdefiniowaliśmy typ tablica i przy tworzeniu rekordu pominiemy to pole, w takim przypadku zostanie umieszczona pusta tablica.
A co zrobić jeśli chcemy jednak wymagać podania tablicy? Prosta rzecz:
Definiujemy dodatkowe pole: default i ustawiamy je na undefined. Po tej zmianie zostanie zgłoszony błąd walidacji, a rekord nie zostanie dodany do bazy danych.
Dokładnie 1 kwietnia 2021 uruchomiłem swojego bloga. Z perspektywy czasu uważam, że to był dobry ruch z mojej strony.
Poniżej krótkie podsumowanie:
Regularność
Przed startem założyłem sobie, że będę publikować wpis minimum raz na tydzień. I to mi się udało! Nie twierdzę, że było łatwo. Czasami były momentu zastoju, ale udało mi się to pokonać.
Przed uruchomieniem bloga chciałem uniknąć sytuacji, że po chwili entuzjazmu zapał będzie z czasem maleć. Dzięki prowadzeniu bloga udało mi się zbudować dyscyplinę.
Rozwój
Jednym ze spiritus movens prowadzenie własnego bloga jest zdobywanie nowych umiejętności. Sprawa jest prosta: uczę się czegoś nowego i opisuję to na blogu.
Chcę rozwijać się także, w pisaniu. Wiem, że przede mną długa droga, ale uczenie się nowych rzeczy sprawia mi przyjemność.
W czerwcu dodałem nowy dział: komiksy. Nie potrafię rysować, ale staram się pracować nad swoją kreatywnością poprzez rysowanie zabawnych sytuacji.
Notatnik
Ludzie tworzą blogi z różnych powodów: jedni, bo chcą dzielić się wiedzą inni, żeby zarabiać pieniądze. Ja złapałem się na tym, że sam od czasu do czasu korzystam z własnego bloga!
Spisuję tu różne rzeczy, które są mi przydatne takie jak na przykład: praca z komiksy lub przeczytane książki.
Praktycznie to samo, co poprzednio, ale wykorzystujemy tutaj metodę entries, która zwraca tablicę, której wartości są przechowywane w postaci: [klucz, wartość].
Sposób 3: Object.getOwnPropertyNames
Ostatni sposób różni się trochę od dwóch poprzednich. Metody keys i entries sprawdzają policzalne właściwości obiektu. Metoda getOwnPropertyNames zwraca zarówno policzalne i niepoliczalne właściwości obiektu.
Za pomocą metody defineProperty tworzymy właściwość niepoliczalną o nazwie color. Jak widać jest różnica między keys (ale też entries) a getOwnPropertyNames.