Menu
CoddyTech

מודול מסד נתונים

חלק מהיחידה מסדי נתונים עם MongoDB במסלול ה-Node.js של Coddy. שיעור 15 מתוך 18.

קובץ אחד שפותח את מסד הנתונים ומכיל את כל הנתיבים נעשה קשה לקריאה, וכל קובץ נוסף שזקוק ל־books יצטרך להתחבר שוב.

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

// store.js
import { MongoClient } from 'mongodb';

const client = new MongoClient('mongodb://localhost:27017');
export const orders = client.db('shop').collection('orders');
await orders.createIndex({ number: 1 }, { unique: true });
// server.js
import { orders } from './store.js';
challenge icon

אתגר

קל
  • כעת server.js מייבא את books ואת ratings מתוך ./db.js, ולכן הוא עדיין לא יכול לפעול.
  • ב־db.js, צרו את הלקוח, ייצאו את שתי האוספים, צרו את אינדקס ISBN ואתחלו את הספרים ואת המחברים.

לחצו על Run: כל נתיב מגיב כבעבר. שלחו GET /books פעמיים: עדיין יש שלושה ספרים.

נסו בעצמכם

import { MongoClient } from 'mongodb';
import { authorList } from './authors.js';

const bookList = [
    { title: 'Dune', author: 'Frank Herbert', year: 1965, isbn: '9780441013593', genre: 'scifi' },
    { title: 'Kindred', author: 'Octavia E. Butler', year: 1979, isbn: '9780807083697', genre: 'scifi' },
    { title: 'Emma', author: 'Jane Austen', year: 1815, isbn: '9780141439587', genre: 'classic' },
];

// צרו כאן את הלקוח, ייצאו את האוספים books ו-ratings,
// צרו את האינדקס של ISBN, ואכלסו את האוספים בנתונים מ-bookList ומ-authorList.
quiz iconבחנו את עצמכם

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

כל השיעורים ביחידה מסדי נתונים עם MongoDB