PracticU

שליפת כל המוצרים מתוך MongoDB

בלי כתוביותעם כתוביות
PracticU › קורס NodeJS › שליפת כל המוצרים מתוך MongoDB
מילון מושגים:
MongoDB - מסד נתונים מסוג NoSQL שמאחסן נתונים כמסמכים בפורמט דמוי JSON, בלי מבנה טבלאי קשיח.
MySQL - מערכת ניהול מסדי נתונים יחסיים בקוד פתוח, נפוצה מאוד באתרים וביישומי אינטרנט.
Promise - אובייקט ב-JavaScript שמייצג תוצאה עתידית של פעולה אסינכרונית, שתושלם בהצלחה או תיכשל.
אסינכרוני - אופן פעולה שבו פעולה ארוכה רצה ברקע והתוכנית ממשיכה בלי להמתין לה, ומטופלת כשתסתיים.
Callback - פונקציה שמועברת כארגומנט לפונקציה אחרת כדי שתופעל מאוחר יותר, לרוב בסיום פעולה.
GET - שיטת HTTP לבקשת מידע מהשרת בלי לשנות אותו. הפרמטרים מועברים בדרך כלל בכתובת.
Localhost - שם המפנה למחשב המקומי עצמו (כתובת 127.0.0.1), המשמש לבדיקת שירותים הרצים על אותו מחשב.
Northwind - מסד נתונים לדוגמה של מיקרוסופט, המדמה חברת מסחר ומשמש ללימוד ולהדגמת שאילתות SQL.

שליפת כל המוצרים מתוך MongoDB
מחליפים את הפונקציה שמחזירה את כל המוצרים כך שתקרא מ-MongoDB במקום מ-MySQL.
איך זה עובד
1. מחזירים Promise: getAllProductsAsync נבנית כפונקציה שמחזירה Promise עם resolve ו-reject, בלי להיות מסומנת async. כך הקונטרולר יכול לקרוא לה עם await.
2. ניגשים ל-collection: db.collection("products") נותן גישה לאוסף המוצרים.
3. שולפים הכול: find() מחזיר אובייקט cursor, והופכים אותו למערך עם toArray.
4. מדווחים: ל-toArray מעבירים פונקציית callback. אם יש שגיאה קוראים ל-reject, ואחרת ל-resolve עם המוצרים.
הפונקציות הבסיסיות של MongoDB אינן מחזירות Promise אלא מקבלות callback, ולכן צריך את העבודה הנוספת עם ה-Promise.
בדיקה
מריצים את האפליקציה ב-Node ושולחים ב-Postman בקשת GET לכתובת localhost:3000/api/product. מתקבלת רשימת כל המוצרים של Northwind שב-MongoDB.
אפשר עכשיו לשלוף את כל המוצרים מ-MongoDB. שליפת מוצר בודד בהרצאה הבאה.
השיעור הבא בקורס: שליפת מוצר בודד מתוך MongoDB

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

  1. 00:00

    שינוי הפונקציה Get All Products

  2. 00:39

    החזרת Promise מהדאטאבייס

  3. 01:22

    גישה ל-Collection ושליפה עם Find

  4. 02:01

    המרה למערך ודיווח הצלחה או כישלון

תמלול ההרצאה: שליפת כל המוצרים מתוך MongoDB

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

  1. 00:04

    אנחנו רוצים עכשיו להחזיר את כל המוצרים. בואו נעצור את המריצה ואנחנו נמצאים בפרודקטס לוג'יק. בפרודקטס לוג'יק אנחנו רוצים לשנות את הפונקציה get all products async כך שהיא לא תתייחס למה sql אלא תבצע את השימוש במונגו db בכדי להחזיר את כל המוצרים.

  2. 00:30

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

  3. 00:49

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

  4. 01:09

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

  5. 01:32

    אז בואו נראה מה אנחנו עושים פה. יש לנו db.collection, זה בעצם גישה לאוסף ספציפי. אנחנו רוצים לגשת לאוסף ה-products ואנחנו רוצים to find בתוך האוסף הזה את כל הרשומות.

  6. 01:59

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

  7. 02:17

    אז אנחנו יודעים שתופעל הפונקציה הזאת ובה אנחנו רוצים לדווח או כישלון או הצלחה. אם לא הצלחנו, הנה ה-reject

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

ההרצאה הקודמת: חיבור של NodeJS ל-MongoDB

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

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

  • מבוא ל-MongoDB
  • שליפת מידע עם Azios
  • שליפת כל הסיסמאות של הארגון - מתוך זיכרון של DC
  • מסד נתונים NoSQL - MongoDB

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

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