PracticU

עדכון מוצר - קורס NodeJS

בלי כתוביותעם כתוביות
PracticU › קורס NodeJS › עדכון מוצר - קורס NodeJS
מילון מושגים:
Node.js - סביבת ריצה שמאפשרת להריץ קוד JavaScript מחוץ לדפדפן, בעיקר בצד השרת.
PUT - שיטת HTTP לשליחת נתונים לשרת כדי ליצור או להחליף משאב קיים במלואו.
פרמטר - ערך שמועבר לפונקציה או לפקודה כקלט, ומשפיע על אופן פעולתן ועל התוצאה שהן מחזירות.
JavaScript - שפת תכנות שרצה בעיקר בדפדפן ומוסיפה אינטראקטיביות לדפי אינטרנט. רצה גם בצד השרת באמצעות Node.js.
ראוט - הגדרה שמקשרת כתובת בקשה לקוד שמטפל בה באפליקציה. גם מסלול שדרכו עוברות חבילות ברשת.
נתיב - מחרוזת שמתארת את מיקומו של קובץ או תיקייה במערכת הקבצים, או כתובת של משאב בתוך אתר.
בקשה - פנייה שלקוח שולח לשרת כדי לקבל מידע או לבצע פעולה. השרת מחזיר עליה תגובה.
Postman - כלי לבדיקת API: שליחת בקשות HTTP לשרת ובחינת התגובות, נפוץ בפיתוח ובבדיקות.

עדכון מוצר - קורס NodeJS
השיעור מוסיף עדכון מלא של מוצר בעזרת PUT, כשכל הפרמטרים נשלחים מחדש.
הצעדים
1. איתור המוצר: הלוגיקה מחפשת את המוצר לפי ID. אם לא נמצא, מוחזר null, והעדכון לא מתבצע.
2. העתקת שדות: לולאת for...in עוברת על השדות של המוצר שנשלח, ומעתיקה לכל שדה שיש לו ערך אל המוצר הקיים.
3. שמירה: הקובץ כולו נשמר מחדש. האובייקט שנמצא משתנה ישירות, כי ב-JavaScript אובייקטים מועברים בהפניה.
4. ראוט PUT: ה-ID נלקח מהנתיב, דרך request.params.id, והמאפיינים האחרים נלקחים מגוף הבקשה. ה-ID ממומר למספר עם סימן פלוס. השרת מחזיר 200 עם המוצר המעודכן.
5. בדיקה: ב-Postman שולחים PUT עם שם ומחיר חדשים, ובודקים בקובץ שהשינוי נשמר.
שימו לב
- ה-ID צריך להגיע מהנתיב ולא מהגוף. השרת מתייחס רק למזהה שבנתיב.
- בהשוואה של ID בא מהנתיב, חייבים להמיר אותו למספר. בלי ההמרה ההשוואה לא תמצא את המוצר.
לאחר הבדיקה המוצר מופיע עם הערכים החדשים, גם ברשימה וגם בקובץ.
השיעור הבא בקורס: עדכון מוצר באופן חלקי - קורס NodeJS

פרקי ההרצאה: עדכון מוצר - קורס NodeJS

  1. 00:00

    עדכון מוצר בבקשת PUT

  2. 00:41

    פונקציה אחת לעדכון PUT ו-PATCH

  3. 01:17

    קבלת כל המוצרים מהקובץ

  4. 01:58

    איתור המוצר לעדכון לפי ה-ID

  5. 02:41

    לולאת for-in על שדות המוצר

  6. 04:22

    שמירת כל המוצרים והבדל בין הלולאות

תמלול ההרצאה: עדכון מוצר - קורס NodeJS

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

  1. 00:03

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

  2. 00:21

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

  3. 00:33

    בואו נעשה פה קצת איזשהו שינוי כזה ואנחנו רוצים לבנות, טוב בואו נבנה את זה כאן. אז פה אנחנו רוצים לבצע פונקציה אסינג פאנקשן ובואו נקרא לה update product async.

  4. 00:50

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

  5. 01:11

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

  6. 01:25

    טוב, מה אנחנו צריכים לבצע? דבר ראשון, בואו נקבל את כל המוצרים. זה בעצם הקטע קוד הזה. יש לנו את כל המוצרים מהקובץ. עכשיו בואו נאתר את המוצר שאנחנו רוצים לעדכן.

  7. 01:40

    נבנה פה product to update, נאתר על ידי product.find, נחפש את המוצר לפי ה-id שלו, product.id. שימו לב שבתוך המוצר חייב להיות גם ה-id.

  8. 02:01

    יש לנו עכשיו את product to update. הדבר הראשון, אולי שלחו לי מוצר שלא קיים. אני לא רוצה עכשיו להתחיל לרוץ עליו ולעדכן. אז מה שאנחנו צריכים לבצע במקרה כזה זה לבדוק האם אין לנו שום דבר בפרודקט to update, כלומר הוחזר לנו מכאן מהפיינד את הערך undefined ולכן הif הזה יהיה true.

  9. 02:29

    אם זה המצב נחזיר null key ואומר וואלה אין לי שום מוצר שכרגע בעצם נמצא עבור עדכון. אם כן, אנחנו יכולים לרוץ עליו על ידי לולת for each, כל פרופרטי זה בעצם לא for each, זה for in.

  10. 02:49

    פרופרטי in product, לולת for in רצה על אובייקטים ו-for each רצה על מערכים. ובואו נבדוק האם קיים לנו אותו פרופרטי. אם פרודקט במיקום פרופרטי, הוא עונה מ-un-define, זאת אומרת שהביאו לי באמת ערך עבור אותו פרופרטי, אז product to update במיקום הפרופרטי הזה מקבל את מה שהביאו לי במוצר, product

  11. 03:24

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

  12. 03:48

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

  13. 04:08

    מי שלא כל כך מסתדר עם הלולה הזאת צריך לחזור לג'אווה סקריפט, לולאת for-in במקביל או בניגוד ללולאת for-each ש-for-each זה for-off.

  14. 04:19

    for-off רצה על קולקשנים בלבד, for-in רצה על אובייקטים ויש לנו פה אובייקט לא קולקשן. כאשר סיימנו אנחנו חוזרים לשלוח לדאטאבייס את כל המוצרים, יש לנו פה await.dall.save all, הנה כל המוצרים שהמוצר כבר עודכן.

  15. 04:41

    רגע, איך זה יכול להיות שהמוצר כבר עודכן? הרי מה הקשר בין אוסף המוצרים לבין המוצר הזה?

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

ההרצאה הקודמת: הוספת מוצר חדש - קורס NodeJS

ההרצאה הבאה: עדכון מוצר באופן חלקי - קורס NodeJS

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

  • עדכון מוצר בריאקט
  • עדכון של Kali
  • עדכון נתונים ב-MongoDB
  • CLR - פונקצית עדכון

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

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