ANÚNCIO

~/questoes/programacao

Após centralizar a const consulta em conexao.js, como o Repository deve acessá-la?

Responda, confira o feedback e use o resultado para orientar sua revisão.
Aula de referência Curso de Node JS Aula 12 Refatorar Repository, JSDoc e ajustes finais
Para fixar

Importando a const consulta no padrão Repository

Conceito central

Quando você centraliza a conexão com o banco de dados em um arquivo separado, o Repository precisa acessá-la através de um import ES6. Isso segue o princípio DRY (Don't Repeat Yourself) e mantém o código limpo e reutilizável.

Por que essa resposta faz sentido

Importar a const consulta diretamente do arquivo conexao.js é a forma correta. Dessa maneira, o Repository reutiliza a mesma instância de Promise sem duplicação de código, e qualquer mudança na conexão afeta apenas um lugar da aplicação.

Armadilhas comuns

  • Esquecer de exportar a const consulta no arquivo conexao.js antes de tentar importá-la no Repository
  • Usar require() em vez de import ao trabalhar com módulos ES6 moderno
  • Importar a const com um caminho incorreto ou não atualizável após mudanças de estrutura de pastas

Entenda as alternativas

A

Criar uma nova instância de Promise em cada método violaria o princípio DRY. Cada chamada geraria uma nova Promise, multiplicando o código desnecessariamente e dificultando a manutenção.

B

Importar a const consulta de conexao.js é a abordagem correta. Use a sintaxe 'import { consulta } from './conexao.js'' no Repository para acessar a conexão centralizada.

C

Declarar como variável global é uma má prática. Isso polui o escopo global, torna o código difícil de testar e manter, além de criar dependências implícitas em todo o projeto.

D

Solicitar através de uma API externa adiciona complexidade desnecessária e latência. A conexão com o banco deve ser local e centralizada, não externa.

Dica prática: No conexao.js, exporte assim: 'export const consulta = new Promise(...)'. Depois no Repository, importe com: 'import { consulta } from "./conexao.js";'. Testei com Insomnia depois? Valida que suas rotas funcionam normalmente.

Revise pensando: Se você precisasse importar a const consulta do arquivo conexao.js para o seu Repository, qual seria a sintaxe correta e por que evitaríamos duplicar a Promise em cada método?