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';Wyzwanie
Łatwy- Plik
server.jsimportuje terazbooksiratingsz./db.js, więc nie można go jeszcze uruchomić. - W pliku
db.jsutwó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.
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
1Dokumenty
Łączenie z MongoDBWstawianie dokumentów4Struktura
Moduł bazy danychStronicowanie w bazie danych2Modyfikowanie dokumentów
Aktualizowanie dokumentówOperatory aktualizacji