PracticU

שליפת מוצר בודד מתוך MySQL

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

שליפת מוצר בודד מתוך MySQL
בשיעור הזה משלימים את הפונקציה שמחזירה מוצר בודד לפי מזהה. המזהה מגיע בכתובת הבקשה, והשרת בודק אותו לפני שהוא פונה למסד הנתונים.
השלבים העיקריים
1. בדיקת המזהה: הערך מגיע מה-Route, וכלי הולידציה Joi בודק שהוא מספר וגדול או שווה ל-0. ערך לא חוקי מחזיר שגיאה 400.
2. שאילתת SELECT: השאילתה נבנית בעזרת string interpolation, ומביאה את המזהה, השם, המחיר והמלאי של המוצר שה-ID שלו זהה למזהה שהתקבל.
3. שורה אחת במערך: execute מחזיר תמיד טבלה, גם כשיש בה רשומה אחת, ולכן מחזירים את האיבר במיקום 0.
4. מוצר לא נמצא: אם השאילתה לא החזירה מוצר, השרת עונה 404.
בדיקה ב-Postman
מוצר מספר 2 חזר כאובייקט בודד. מוצר 100, שלא קיים, קיבל 404. מזהה כמו ABC או מספר שלילי קיבל הודעת ולידציה.
בסוף השיעור המוצר הבודד נשלף מ-MySQL ומוחזר ללקוח בצורה מסודרת.
השיעור הבא בקורס: הוספת מוצר חדש ל-MySQL

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

  1. 00:00

    קבלת מזהה מוצר מהראוט ובדיקתו

  2. 00:40

    החזרת המוצר או שגיאת 404

  3. 01:22

    שילוב ערך המזהה בשאילתה

  4. 01:56

    בחירת שדות המוצר בשאילתת SELECT

  5. 02:52

    החזרת הרשומה הראשונה מהתוצאה

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

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

  1. 00:02

    אנחנו כעת רוצים לטפל בפונקציה הזאת, get one product async. היא מקבלת את ה-ID על ידי ה-Route, ה-ID נשלח פה בקונטרולר ב-Route, שולפת את ה-ID, כאן אנחנו עשינו איזושהי בדיקה בעזרת ג'וי שה-ID הוא חוקי מבחינתנו, ואם לא, כמובן החזרנו שגיאת 400 וראינו שיש עוד איזושהי שיטה לבדוק האם ה-ID הוא חוקי, ראינו את זה פה למטה כאן אבל זה שני דברים

  2. 00:40

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

  3. 00:58

    שולחים לה אם המוצר לא נמצא מחזירים 404 אם הוא נמצא אנחנו מחזירים אותו בחזרה ללקוח מה אנחנו צריכים לעשות כאן. אז פה מה שאנחנו רוצים לעשות זה שאילתת sql למציאת מוצר בודד const sql אבל אני לא אבצע את השאילתה על ידי מכרוזת כזאת אני אבצע אותה על ידי מכרוזת כזאת שזה בעצם מכרוזת שנקראת string interpolation שמאפשרת לנו לשלב בתוכה ערכים למה כי בדוגמה אנחנו צריכים

  4. 01:36

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

  5. 01:43

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

  6. 02:14

    ואנחנו רוצים להוסיף כאן where מה אנחנו רוצים לבדוק שהproductid שקיים בדאטאבייס הוא זהה לid שהתקבל בפונקציה והstring interpolation מאפשרת לנו לבצע את השתילת מידע הזה בתוך המחרוזת.

  7. 02:48

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

  8. 03:19

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

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

ההרצאה הקודמת: שליפת כל המוצרים מתוך MySQL

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

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

  • הרצאה על Azure MySQL
  • התקנה של mysql
  • הצגת פריט בודד - SingleOrDefault
  • שליפת מידע עם Azios

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

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