PracticU

חיבור של NodeJS ל-Mongoose

בלי כתוביותעם כתוביות
PracticU › קורס NodeJS › חיבור של NodeJS ל-Mongoose
מילון מושגים:
Node.js - סביבת ריצה שמאפשרת להריץ קוד JavaScript מחוץ לדפדפן, בעיקר בצד השרת.
MongoDB - מסד נתונים מסוג NoSQL שמאחסן נתונים כמסמכים בפורמט דמוי JSON, בלי מבנה טבלאי קשיח.
חבילה - אוסף ארוז של קוד, ספריות או קבצים המופץ כיחידה אחת ומותקן בעזרת מנהל חבילות.
npm - מנהל החבילות של Node.js, המשמש להתקנה ולניהול ספריות JavaScript בפרויקט.
Promise - אובייקט ב-JavaScript שמייצג תוצאה עתידית של פעולה אסינכרונית, שתושלם בהצלחה או תיכשל.
Northwind - מסד נתונים לדוגמה של מיקרוסופט, המדמה חברת מסחר ומשמש ללימוד ולהדגמת שאילתות SQL.
אסינכרוני - אופן פעולה שבו פעולה ארוכה רצה ברקע והתוכנית ממשיכה בלי להמתין לה, ומטופלת כשתסתיים.
נתיב - מחרוזת שמתארת את מיקומו של קובץ או תיקייה במערכת הקבצים, או כתובת של משאב בתוך אתר.

חיבור של NodeJS ל-Mongoose
מכאן ואילך עובדים עם אותו MongoDB, אבל דרך ORM (Object Relational Mapper) בשם mongoose, שמגדיר מודלים ומבצע בשבילנו את פעולות המסד. ההרצאה מחליפה את שכבת ה-DAL ומתחברת דרך mongoose.
השלבים העיקריים
1. מחליפים חבילה: מריצים npm uninstall mongodb ואחר כך npm i mongoose. mongoose כוללת את מה שיש ב-mongodb ומשתמשת בו מאחורי הקלעים. מי שמתחיל מראש עם mongoose לא צריך להתקין את mongodb.
2. מתחברים: הפונקציה connectAsync מחזירה Promise וקוראת ל-mongoose.connect(connectionString, options). מחרוזת החיבור והאפשרויות זהות לאלה שבחיבור הישיר, כולל הפורט 27017 והמסד northwind מקובץ ההגדרות.
3. מבצעים חיבור פעם אחת: אין צורך לחשוף דבר מה-DAL. הפונקציה עטופה ב-IIFE אסינכרונית שנקראת פעם אחת, ובה try שמציג הודעה כמו "we're connected to" ושם המסד, או את השגיאה.
4. טוענים את ה-DAL ב-app.js: require בלבד, בלי const, כי אין צורך באובייקט. כך החיבור נעשה פעם אחת לכל האפליקציה ולא בכל business logic, ואפשר למחוק את ה-require ואת הגישה למסד ממנו.
שימו לב
בהרצה הראשונה החיבור נכשל בגלל נתיב require שגוי: נשארה נקודה אחת במקום שתיים אחרי copy-paste. תיקון הנתיב הועיל.
אחרי ההרצאה האפליקציה מחוברת ל-MongoDB דרך mongoose, וההרצאות הבאות מתאימות את הפונקציות אחת אחת.
השיעור הבא בקורס: יצירת מודל - Product Model

פרקי ההרצאה: חיבור של NodeJS ל-Mongoose

  1. 00:00

    בחירת דאטאבייס אחד למוצר

  2. 00:41

    מה זה ORM ו-Object Relational Mapper

  3. 01:43

    הכרת המערכת Mongoose

  4. 02:24

    הסרת MongoDB והתקנת Mongoose

  5. 03:23

    כתיבת פונקציית ההתחברות

  6. 04:39

    אפשרויות הקונפיגורציה

תמלול ההרצאה: חיבור של NodeJS ל-Mongoose

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

  1. 00:04

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

  2. 00:24

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

  3. 00:40

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

  4. 00:51

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

  5. 01:11

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

  6. 01:43

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

  7. 02:06

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

  8. 02:24

    אז בואו נגדיר כאן npm uninstall mongo dd ואנחנו הולכים בעצם להסיר את ההתקנה של מונגו די.בי. ולהתקין במקומה מונגוס.

  9. 02:38

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

  10. 02:58

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

  11. 03:18

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

  12. 03:32

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

  13. 03:50

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

  14. 04:13

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

  15. 04:39

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

  16. 05:10

    את זה אנחנו פשוט מקבלים אוטומטית את הדאטאבייס ושולחים אותו.

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

ההרצאה הקודמת: שליפת קטגוריה עם כל המוצרים שלה - MongoDB Join

ההרצאה הבאה: יצירת מודל - Product Model

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

  • חיבור ל-MySQL - פרויקט NodeJS
  • חיבור מרחוק עם SSH
  • CLR - חיבור לסביבת SQL
  • חיבור אפליקציה למסד נתונים

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

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