
save של אובייקט המודל. בדרך מסירים גם את Joi ואת העמודה __v שמונגוס מוסיף.save: האובייקט שמגיע ל-addProductAsync הוא אובייקט של מודל mongoose, ולכן יש לו save(). הפונקציה מחזירה Promise עם המוצר, וכותבים return product.save().new Product(request.body). הקונסטרקטור של המחלקה ש-mongoose בנתה שולף מה-body את הערכים ומציב אותם במאפיינים שהוגדרו בסכמה.npm uninstall joi._id וקוד 201.__v: mongoose מוסיף שדה __v, מעין גרסת מסמך שלא מתעדכן אוטומטית ורוב הזמן לא נחוץ. מעבירים לסכמה פסיק ואחריו אובייקט אפשרויות עם versionKey: false.__v.הטקסט המלא של הדקות הראשונות בהרצאה «הוספת מוצר חדש ל-Mongoose» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.
אנחנו עוברים להוספת מוצר חדש יש לנו את הפונקציה add product async שמקבלת product אבל product זה בעצם אובייקט מהסוג של המודל של מונגוס אז בגלל שזה אובייקט מהסוג של המודל של מונגוס יש לו פונקציה שנקראת save עכשיו אתם לא רואים את הפונקציות שלו כאן מפני שאין לג'אווה סקריפט יכולת לדעת מה הסוג של הדבר הזה אבל אם נניח הייתי
עושה סתם איזה ניסוי רושם קונסט p שווה ניו פרודקט של מונגוס והייתי רושם p נקודה פתאום הייתי רואה את כל הפונקציות הנה סייב אז אנחנו צריכים להניח שהמוצר הזה שהאובייקט הזה שהתקבל לפונקציה זה אובייקט של מונגוס ואנחנו רושמים סייב סייב כבר מחזירה לנו פרומיס שמחזיר את המוצר הזה אז כל מה שאנחנו עושים זה פשוט מחזירים את פונקציית
save תראו כמה שורות קוד אנחנו בעצם נפטרים מהם אם אנחנו עובדים עם המנגנון הזה בואו רק נבדוק מה קורה בצד של הקונטרולר האמת עוד לא בדקתי את זה אז בואו נראה מה יש לנו פה עם get all products אני רואה שזה בסדר הוא פשוט מחזיר את המוצרים get one product מבצע בדיקת 404 זה עוד לא עשינו לא ממש בדקנו לגבי אם אין מוצר כבר נבדוק את זה
וכאן מה שאנחנו עושים אנחנו פשוט אומרים לו הנה כל הערכים מהבאדי קח אותו אבל יש לנו משהו קצת אחר שאנחנו צריכים לעשות פה כי אין קונסטרקטור בדיוק כזה לפרודקט עצמו אנחנו רואים שפרודקט אני לא בניתי בכלל את המחלקה זה מחלקה של של מונגוס אז מה שאנחנו פשוט צריכים לתת לקונסטרקטור
של מי הוא ופרודקט אכן מגיע מהמודל של מונגוס זה אך ורק את request body. ה-request body כבר מכיל הכל אז אוטומטית הקונסטרקטור של המחלקה של מונגוס יודע לשלוף ממנו את כל הערכים ולשים אותם במשתנים המתאימים של המודל מה שהגדרנו פה אז זה עוד קטע קוד שטיפה מקצר לנו
הנה פרודקט, אין לנו ולידציה של ג'וי, לכן אני אוריד את זה. למעשה, אולי בשלב הזה כבר ניפטר לגמרי מג'וי. יש לנו ולידציה בילד אין של מונגוס, אנחנו נראה את זה בהמשך.
אז בואו נבצע npm uninstall joi, זה בעצם מסיר לנו את ג'וי מהמערכת,