Menu
CoddyTech

Moduł bazy danych

Część sekcji Bazy danych z MongoDB ścieżki Node.js w Coddy. Lekcja 15 z 18.

Jeden plik, który otwiera bazę danych i zawiera wszystkie trasy, staje się trudny do czytania, a każdy drugi plik, który potrzebuje books, musiałby ponownie nawiązać połączenie.

Przenieś połączenie do osobnego modułu. Kod najwyższego poziomu modułu uruchamia się raz, gdy dowolny plik importuje go po raz pierwszy, a każdy kolejny import otrzymuje te same eksporty. Klient, indeks i ziarno uruchamiają się więc raz, niezależnie od tego, ile plików importuje kolekcje. W module działa najwyższy poziom await, a plik importujący czeka na jego zakończenie.

// 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

Wyzwanie

Łatwy
  • Plik server.js importuje teraz books i ratings z ./db.js, więc nie można go jeszcze uruchomić.
  • W pliku db.js utwórz klienta, wyeksportuj obie kolekcje, utwórz indeks ISBN i dodaj początkowe dane do kolekcji książek i autorów.

Naciśnij Run: każda trasa działa jak wcześniej. Wyślij dwa razy GET /books: nadal będą trzy książki.

Spróbuj swoich sił

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' },
];

// Utwórz tutaj klienta, wyeksportuj kolekcje books i ratings,
// utwórz indeks ISBN i wypełnij kolekcje danymi z bookList i authorList.
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Bazy danych z MongoDB