Um Módulo de Banco de Dados
Parte da seção Bancos de dados com MongoDB do Journey de Node.js da Coddy. Lição 15 de 18.
Um arquivo que abre o banco de dados e contém todas as rotas fica difícil de ler, e qualquer segundo arquivo que precise de books teria que se conectar novamente.
Mova a conexão para um módulo próprio. O código de nível superior de um módulo é executado uma vez, na primeira vez que qualquer arquivo o importa, e todas as importações posteriores recebem as mesmas exportações. Assim, o cliente, o índice e a semente são executados uma vez, independentemente de quantos arquivos importem as coleções. O await de nível superior funciona em um módulo, e o arquivo que o importa espera até que ele 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';Desafio
Fácilserver.jsagora importabookseratingsde./db.js, então ainda não pode iniciar.- Em
db.js, crie o cliente, exporte as duas coleções, crie o índice de ISBN e carregue os dados iniciais dos livros e dos autores.
Pressione Run: todas as rotas respondem como antes. Envie GET /books duas vezes: continuam sendo três livros.
Experimente você mesmo
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' },
];
// Crie o cliente aqui e exporte as coleções books e ratings,
// crie o índice ISBN e insira os dados iniciais de bookList e authorList.
Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.
Todas as lições de Bancos de dados com MongoDB
1Documentos
Conectando ao MongoDBInserindo documentos4Estrutura
Um Módulo de Banco de DadosPaginação no Banco de Dados