Bir Veritabanı Modülü
Coddy'nin Node.js Journey'sinin MongoDB ile Veritabanları bölümünün bir parçası. Ders 15 / 18.
Veritabanını açan ve tüm rotaları içeren tek bir dosyanın okunması zorlaşır; books öğesine ihtiyaç duyan ikinci bir dosyanın da yeniden bağlanması gerekir.
Bağlantıyı kendi modülüne taşı. Bir modülün en üst düzey kodu, herhangi bir dosya onu ilk kez içe aktardığında bir kez çalışır ve sonraki tüm içe aktarmalar aynı dışa aktarımları alır. Böylece koleksiyonları kaç dosyanın içe aktardığından bağımsız olarak istemci, dizin ve tohum dosyası bir kez çalışır. Bir modülde en üst düzeyde await kullanılabilir ve içe aktaran dosya, işlemin tamamlanmasını bekler.
// 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';Görev
Kolayserver.jsartık./db.jsdosyasındanbooksveratingsiçe aktarıyor; bu nedenle henüz başlatılamaz.db.jsiçinde istemciyi oluşturun, her iki koleksiyonu da dışa aktarın, ISBN dizinini oluşturun ve kitaplarla yazarları başlangıç verileriyle doldurun.
Çalıştır'a basın: her yol önceki gibi yanıt verir. GET /books isteğini iki kez gönderin: hâlâ üç kitap.
Kendin dene
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' },
];
// İstemciyi burada oluşturun, books ve ratings koleksiyonlarını dışa aktarın,
// ISBN dizinini oluşturun ve bookList ile authorList verilerini başlangıç verisi olarak ekleyin.
Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.