Como conectar uma API Node.js a um banco de dados MongoDB?

A conexão entre Node.js e MongoDB é feita utilizando a biblioteca Mongoose, facilitando a manipulação de dados no banco.

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.

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

Compartilhe este tutorial: Como conectar uma API Node.js a um banco de dados MongoDB?

Compartilhe este tutorial

Continue aprendendo:

Como usar o middleware de autenticação no Express.js?

O middleware de autenticação no Express.js permite proteger rotas, verificando tokens JWT ou credenciais antes de permitir o acesso.

Tutorial anterior

Como conectar uma API Node.js a um banco de dados MySQL?

A conexão entre Node.js e MySQL pode ser feita utilizando o Sequelize, um ORM que facilita a manipulação de dados.

Próximo tutorial