מודול מסד נתונים
חלק מהיחידה מסדי נתונים עם 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';אתגר
קל- כעת
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.
השיעור הזה כולל חידון קצר. התחילו את השיעור כדי לענות עליו ולעקוב אחרי ההתקדמות.