Como conectar uma API Node.js a um banco de dados MongoDB?
O MongoDB é um banco de dados NoSQL amplamente utilizado em aplicações modernas. No Node.js, utilizamos a biblioteca Mongoose para facilitar a comunicação com o banco.
1. Instalando as dependências
Antes de conectar ao MongoDB, precisamos instalar o Mongoose:
npm install mongoose dotenv
2. Configurando a conexão
Crie um arquivo .env
para armazenar a URL do banco de dados:
MONGO_URI=mongodb://localhost:27017/meubanco
Agora, crie um arquivo database.js
para gerenciar a conexão:
const mongoose = require('mongoose');
require('dotenv').config();
const conectarBanco = async () => {
try {
await mongoose.connect(process.env.MONGO_URI, {
useNewUrlParser: true,
useUnifiedTopology: true
});
console.log('Conectado ao MongoDB');
} catch (error) {
console.error('Erro ao conectar ao MongoDB:', error);
process.exit(1);
}
};
module.exports = conectarBanco;
3. Integrando a conexão com o servidor
No arquivo server.js
, importe a conexão:
const express = require('express');
const conectarBanco = require('./database');
const app = express();
app.use(express.json());
conectarBanco();
app.listen(3000, () => console.log('Servidor rodando na porta 3000'));
4. Criando um modelo de dados com Mongoose
Agora, podemos definir um modelo de dados para armazenar informações no MongoDB. Exemplo de um modelo para usuários:
const mongoose = require('mongoose');
const UsuarioSchema = new mongoose.Schema({
nome: { type: String, required: true },
email: { type: String, required: true, unique: true }
});
const Usuario = mongoose.model('Usuario', UsuarioSchema);
module.exports = Usuario;
5. Criando uma rota para salvar dados
Podemos criar uma rota para cadastrar usuários no banco:
const Usuario = require('./models/Usuario');
app.post('/usuarios', async (req, res) => {
try {
const novoUsuario = await Usuario.create(req.body);
res.status(201).json(novoUsuario);
} catch (error) {
res.status(400).json({ erro: 'Erro ao criar usuário' });
}
});
Agora, podemos enviar uma requisição POST para http://localhost:3000/usuarios
com um JSON:
{
"nome": "João",
"email": "joao@email.com"
}
Conclusão
A integração entre Node.js e MongoDB com Mongoose permite armazenar e recuperar dados de maneira eficiente. O uso de modelos de dados simplifica a manipulação das informações, garantindo estrutura e organização na API.
Por que MongoDB é ideal para aplicações escaláveis?
O MongoDB é um dos bancos de dados NoSQL mais populares e amplamente usado em aplicações escaláveis. Ele permite armazenar documentos em formato JSON, o que facilita a integração com APIs REST.
Empresas como Uber, eBay e Netflix utilizam MongoDB devido à sua flexibilidade e desempenho. Frameworks como NestJS e Next.js oferecem suporte nativo para trabalhar com MongoDB, tornando o desenvolvimento mais ágil.
Algumas aplicações:
- Armazenamento de usuários e autenticação
- Gestão de produtos em e-commerces
- Aplicações que exigem alta escalabilidade
- Manipulação de grandes volumes de dados
- APIs modernas com integração JSON
Dicas para quem está começando
- Use
mongoose.connect()
para estabelecer a conexão com o banco. - Defina esquemas claros para estruturar os dados.
- Armazene a URL do banco em variáveis de ambiente.
- Trate erros de conexão para evitar falhas na API.
- Teste consultas ao banco com ferramentas como MongoDB Compass.
Contribuições de Henrique Almeida