Un módulo de base de datos
Parte de la sección Bases de datos con MongoDB del Journey de Node.js de Coddy. Lección 15 de 18.
Un archivo que abre la base de datos y contiene todas las rutas se vuelve difícil de leer, y cualquier segundo archivo que necesite books tendría que volver a conectarse.
Mueve la conexión a un módulo propio. El código de nivel superior de un módulo se ejecuta una vez, la primera vez que cualquier archivo lo importa, y todas las importaciones posteriores obtienen las mismas exportaciones. Así, el cliente, el índice y la semilla se ejecutan una sola vez, sin importar cuántos archivos importen las colecciones. El await de nivel superior funciona en un módulo, y el archivo que lo importa espera a que termine.
// 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';Desafío
Fácilserver.jsahora importabooksyratingsdesde./db.js, así que todavía no puede iniciarse.- En
db.js, crea el cliente, exporta ambas colecciones, crea el índice de ISBN y carga los libros y los autores iniciales.
Pulsa Run: todas las rutas responden como antes. Envía GET /books dos veces: siguen siendo tres libros.
Pruébalo tú mismo
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 el cliente aquí, exporta las colecciones books y ratings,
// crea el índice ISBN e introduce los datos iniciales de bookList y authorList.
Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.
Todas las lecciones de Bases de datos con MongoDB
1Documentos
Conexión a MongoDBInserción de documentos4Estructura
Un módulo de base de datosPaginación en la base de datos2Modificación de documentos
Actualización de documentosOperadores de actualización