Menu
CoddyTech

Un modulo per il database

Fa parte della sezione Database con MongoDB del percorso Node.js di Coddy. Lezione 15 di 18.

Un unico file che apre il database e contiene tutte le route diventa difficile da leggere, e qualsiasi secondo file che abbia bisogno di books dovrebbe connettersi di nuovo.

Sposta la connessione in un modulo dedicato. Il codice al livello superiore di un modulo viene eseguito una sola volta, la prima volta che un file lo importa, e ogni importazione successiva ottiene le stesse esportazioni. Così il client, l'indice e il seed vengono eseguiti una sola volta, indipendentemente da quanti file importino le raccolte. await al livello superiore funziona in un modulo e il file che lo importa attende che termini.

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

Sfida

Facile
  • server.js ora importa books e ratings da ./db.js, quindi non può ancora avviarsi.
  • In db.js, crea il client, esporta entrambe le collezioni, crea l'indice ISBN e inizializza i dati di books e authors.

Premi Run: ogni route risponde come prima. Invia GET /books due volte: ci sono ancora tre libri.

Provalo tu

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

// Crea qui il client, esporta le collection books e ratings,
// crea l'indice ISBN e popola il database con bookList e authorList.
quiz iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Database con MongoDB