src/config/database.ts
Versão: 1.0
Última atualização: 26 de agosto de 2025
Responsável: Ariel Spencer & Fabrício Bahiense
📋 Descrição
O que faz?
Estabelece conexão com o banco de dados MongoDB usando Mongoose, configurando parâmetros de conexão e tratamento de erros.
Por que existe?
Centraliza a lógica de conexão com o banco de dados, com configuração consistente e tratamento de erros de conexão.
Como funciona?
Utiliza a URI do banco definida em variáveis de ambiente, adiciona parâmetro de readPreference=primary para leituras do nó primário, e estabelece conexão via Mongoose.
🔧 Documentação Técnica
Arquitetura
Aplicação → connectToDatabase() → MongoDB (Primary Node)
↓
Logs de Status + Error Handling
Tecnologias Utilizadas
- ODM: Mongoose
- Banco: MongoDB
- Runtime: Node.js com TypeScript
Estrutura de Pastas
backend/
# Projeto
├── src/
# Source
├── config/ # Configurações
└── database.ts # Conexão com MongoDB
Configuração
Variáveis de Ambiente
DB_URI=mongodb://[user]:[password]@[host]:[port]/[database]
Como usar
import { connectToDatabase } from
'./config/database'
// No início da aplicação
async
function startServer() {
try {
await connectToDatabase()
// Iniciar servidor após conexão
bem-sucedida
} catch (error) {
console.error('Falha ao conectar com
banco:', error)
process.exit(1)
}
}
Parâmetros de Conexão
- readPreference: 'primary' - Força leituras do nó primário para consistência
- URI automaticamente configurada com readPreference=primary query parameter
📦 Dependências
Dependências Principais
|
Pacote |
Versão |
Finalidade |
|
mongoose |
^8.3.1 |
ODM para MongoDB |
Dependências Internas
- env - Configuração de variáveis de ambiente
🐛 Troubleshooting
Problemas Comuns
Erro de Conexão
Sintomas: Error connecting to MongoDB
Causa: URI inválida, credenciais incorretas ou MongoDB
indisponível
Solução: Verificar DBURI nas variáveis de ambiente e
conectividade de rede
Read Preference Issues
Sintomas: Dados inconsistentes em leituras
Causa: Configuração de read preference
inadequada
Solução: O código já força readPreference=primary para máxima consistência
📚 Referências e Links Úteis
Última revisão: 26 de agosto de 2025 por Ariel Spencer