Menu
CoddyTech

Ein Datenbankmodul

Teil des Abschnitts Datenbanken mit MongoDB der Node.js-Journey von Coddy. Lektion 15 von 18.

Eine Datei, die die Datenbank öffnet und jede Route enthält, wird schwer lesbar, und jede zweite Datei, die books benötigt, müsste sich erneut verbinden.

Verschiebe die Verbindung in ein eigenes Modul. Der Code auf der obersten Ebene eines Moduls wird einmal ausgeführt, wenn eine Datei es zum ersten Mal importiert, und jeder spätere Import erhält dieselben Exporte. Der Client, der Index und die Seed-Daten werden also unabhängig davon, wie viele Dateien die Collections importieren, einmal ausgeführt. Top-Level-await funktioniert in einem Modul, und die importierende Datei wartet, bis es abgeschlossen ist.

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

Aufgabe

Einfach
  • server.js importiert jetzt books und ratings aus ./db.js, daher kann es noch nicht gestartet werden.
  • Erstelle in db.js den Client, exportiere beide Sammlungen, erstelle den ISBN-Index und füge die Bücher und die Autoren als Anfangsdaten ein.

Drücke auf „Run“: Jede Route funktioniert wie zuvor. Sende zweimal GET /books: Es sind weiterhin drei Bücher.

Probier es selbst

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

// Erstelle hier den Client und exportiere die Collections books und ratings,
// erstelle den ISBN-Index und befülle die Collections mit bookList und authorList.
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Datenbanken mit MongoDB