PracticU

הוספת מוצר חדש ל-Mongoose

בלי כתוביותעם כתוביות
PracticU › קורס NodeJS › הוספת מוצר חדש ל-Mongoose
מילון מושגים:
מודל - רכיב שמייצג את הנתונים ואת הלוגיקה העסקית באפליקציה. גם ייצוג מופשט של מערכת או תהליך.
Promise - אובייקט ב-JavaScript שמייצג תוצאה עתידית של פעולה אסינכרונית, שתושלם בהצלחה או תיכשל.
קונטרולר - רכיב שמתווך בין הממשק לבין הלוגיקה והנתונים, מקבל בקשות ומחליט כיצד לטפל בהן (למשל בדפוס MVC).
בנאי - מתודה מיוחדת שמופעלת אוטומטית בעת יצירת אובייקט ממחלקה, ומאתחלת את ערכיו ההתחלתיים.
סכמה - המבנה הלוגי של מסד נתונים: הגדרת הטבלאות, העמודות, הסוגים והקשרים ביניהם.
npm - מנהל החבילות של Node.js, המשמש להתקנה ולניהול ספריות JavaScript בפרויקט.
Postman - כלי לבדיקת API: שליחת בקשות HTTP לשרת ובחינת התגובות, נפוץ בפיתוח ובבדיקות.
POST - שיטת HTTP לשליחת נתונים לשרת כדי ליצור או לעדכן משאב, למשל שליחת טופס.

הוספת מוצר חדש ל-Mongoose
הוספת מוצר דרך mongoose מצטמצמת לקריאה לפונקציית save של אובייקט המודל. בדרך מסירים גם את Joi ואת העמודה __v שמונגוס מוסיף.
השלבים העיקריים
1. משתמשים ב-save: האובייקט שמגיע ל-addProductAsync הוא אובייקט של מודל mongoose, ולכן יש לו save(). הפונקציה מחזירה Promise עם המוצר, וכותבים return product.save().
2. יוצרים את המוצר בקונטרולר: new Product(request.body). הקונסטרקטור של המחלקה ש-mongoose בנתה שולף מה-body את הערכים ומציב אותם במאפיינים שהוגדרו בסכמה.
3. מסירים את Joi: יש ב-mongoose ולידציה מובנית, שתוצג בהמשך, ולכן מריצים npm uninstall joi.
4. מחזירים 201: אחרי ההוספה מחזירים ללקוח את המוצר עם ה-_id וקוד 201.
5. מבטלים את __v: mongoose מוסיף שדה __v, מעין גרסת מסמך שלא מתעדכן אוטומטית ורוב הזמן לא נחוץ. מעבירים לסכמה פסיק ואחריו אובייקט אפשרויות עם versionKey: false.
בדיקה
ב-Postman בודקים שוב את שליפת המוצרים ומוצר בודד, ומוודאים שמזהה שגוי מחזיר Not Found. שולחים POST עם מוצר חדש. ב-Robo 3T רואים שהמוצר נוסף, ואחרי הוספת האפשרות, בלי עמודת __v.
אפשר עכשיו להוסיף מוצר בשורת קוד אחת.
השיעור הבא בקורס: עדכון מלא של מוצר ב-Mongoose

פרקי ההרצאה: הוספת מוצר חדש ל-Mongoose

  1. 00:00

    שמירת מוצר חדש עם save

  2. 00:43

    הפונקציות של אובייקט Mongoose

  3. 01:24

    בדיקת פונקציות הקונטרולר

  4. 02:03

    העברת request body לקונסטרקטור של המודל

  5. 03:03

    הסרת Joi מהפרויקט

תמלול ההרצאה: הוספת מוצר חדש ל-Mongoose

הטקסט המלא של הדקות הראשונות בהרצאה «הוספת מוצר חדש ל-Mongoose» בקורס הווידאו של PracticU – כתוביות בעברית עם זמן התחלה לכל פסקה. כך תוכלו לקרוא ולחפש את הנושאים לפני שמתחילים ללמוד.

  1. 00:04

    אנחנו עוברים להוספת מוצר חדש יש לנו את הפונקציה add product async שמקבלת product אבל product זה בעצם אובייקט מהסוג של המודל של מונגוס אז בגלל שזה אובייקט מהסוג של המודל של מונגוס יש לו פונקציה שנקראת save עכשיו אתם לא רואים את הפונקציות שלו כאן מפני שאין לג'אווה סקריפט יכולת לדעת מה הסוג של הדבר הזה אבל אם נניח הייתי

  2. 00:43

    עושה סתם איזה ניסוי רושם קונסט p שווה ניו פרודקט של מונגוס והייתי רושם p נקודה פתאום הייתי רואה את כל הפונקציות הנה סייב אז אנחנו צריכים להניח שהמוצר הזה שהאובייקט הזה שהתקבל לפונקציה זה אובייקט של מונגוס ואנחנו רושמים סייב סייב כבר מחזירה לנו פרומיס שמחזיר את המוצר הזה אז כל מה שאנחנו עושים זה פשוט מחזירים את פונקציית

  3. 01:17

    save תראו כמה שורות קוד אנחנו בעצם נפטרים מהם אם אנחנו עובדים עם המנגנון הזה בואו רק נבדוק מה קורה בצד של הקונטרולר האמת עוד לא בדקתי את זה אז בואו נראה מה יש לנו פה עם get all products אני רואה שזה בסדר הוא פשוט מחזיר את המוצרים get one product מבצע בדיקת 404 זה עוד לא עשינו לא ממש בדקנו לגבי אם אין מוצר כבר נבדוק את זה

  4. 01:51

    וכאן מה שאנחנו עושים אנחנו פשוט אומרים לו הנה כל הערכים מהבאדי קח אותו אבל יש לנו משהו קצת אחר שאנחנו צריכים לעשות פה כי אין קונסטרקטור בדיוק כזה לפרודקט עצמו אנחנו רואים שפרודקט אני לא בניתי בכלל את המחלקה זה מחלקה של של מונגוס אז מה שאנחנו פשוט צריכים לתת לקונסטרקטור

  5. 02:19

    של מי הוא ופרודקט אכן מגיע מהמודל של מונגוס זה אך ורק את request body. ה-request body כבר מכיל הכל אז אוטומטית הקונסטרקטור של המחלקה של מונגוס יודע לשלוף ממנו את כל הערכים ולשים אותם במשתנים המתאימים של המודל מה שהגדרנו פה אז זה עוד קטע קוד שטיפה מקצר לנו

  6. 02:55

    הנה פרודקט, אין לנו ולידציה של ג'וי, לכן אני אוריד את זה. למעשה, אולי בשלב הזה כבר ניפטר לגמרי מג'וי. יש לנו ולידציה בילד אין של מונגוס, אנחנו נראה את זה בהמשך.

  7. 03:15

    אז בואו נבצע npm uninstall joi, זה בעצם מסיר לנו את ג'וי מהמערכת,

לקורס המלא: קורס NodeJS אונליין בעברית

ההרצאה הקודמת: שליפת מוצר בודד מתוך Mongoose

ההרצאה הבאה: עדכון מלא של מוצר ב-Mongoose

הרצאות קשורות מקורסים אחרים

  • הוספת דומיין חדש - ל-AZURE
  • הוספת נתון חדש למסד נתונים
  • הוספת VMkernel
  • הצגת פרטי מוצר

קורסים נוספים במסלול

  • קורס יסודות HTML - בניית אתר אינטרנט פשוט
  • קורס CSS 3 - בדגש על Flex & Grid
  • קורס Javascript כולל JQuery
  • קורס ג'אווה סקריפט מעשי - JavaScript
  • קורס TypeScript
  • קורס ריאקט - React