Capa do Ebook gratuito Como criar APIs em NodeJS do básico ao avançado

Como criar APIs em NodeJS do básico ao avançado

Novo curso

149 páginas

Criando um CRUD com NodeJS e MongoDB: Tratamento de erros

Capítulo 94

Tempo estimado de leitura: 5 minutos

Audio Icon

Ouça em áudio

0:00 / 0:00

Um dos conceitos fundamentais no desenvolvimento de aplicações web é o CRUD (Create, Read, Update, Delete). Esses são os quatro tipos básicos de funcionalidades que a maioria dos sistemas web precisa realizar em algum momento. Neste capítulo, aprenderemos como implementar operações CRUD usando NodeJS e MongoDB, com foco especial no tratamento de erros.

Criando um CRUD com NodeJS e MongoDB

Para começar, precisamos de uma instância do MongoDB em execução e uma aplicação NodeJS configurada. Vamos supor que já temos uma coleção de usuários em nosso banco de dados MongoDB. Nosso objetivo é criar rotas para adicionar um novo usuário, ler usuários existentes, atualizar um usuário e deletar um usuário.

Criando um novo usuário (Create)

Para criar um novo usuário, precisamos de uma rota POST. No NodeJS, isso pode ser feito usando o pacote express. Primeiro, importamos o express e o inicializamos. Em seguida, definimos uma rota POST que aceita os dados do usuário como JSON no corpo da requisição. Usamos o método insertOne do MongoDB para adicionar o novo usuário à nossa coleção.


const express = require('express');
const app = express();
app.use(express.json());

app.post('/users', (req, res) => {
  const newUser = req.body;
  db.collection('users').insertOne(newUser, (err, result) => {
    if (err) {
      res.status(500).send({ error: 'An error occurred while creating the user' });
    } else {
      res.status(201).send(result.ops[0]);
    }
  });
});

Lendo usuários existentes (Read)

Para ler usuários existentes, precisamos de uma rota GET. Nós definimos essa rota e usamos o método find do MongoDB para obter todos os usuários de nossa coleção. O método toArray converte o resultado em um array para facilitar o manuseio.


app.get('/users', (req, res) => {
  db.collection('users').find({}).toArray((err, users) => {
    if (err) {
      res.status(500).send({ error: 'An error occurred while fetching users' });
    } else {
      res.send(users);
    }
  });
});

Atualizando um usuário (Update)

Para atualizar um usuário, precisamos de uma rota PUT. Essa rota deve incluir o ID do usuário que queremos atualizar. Usamos o método findOneAndUpdate do MongoDB para atualizar o usuário. Especificamos o ID do usuário como nosso critério de busca e passamos os novos dados do usuário.

Continue em nosso aplicativo

Você poderá ouvir o audiobook com a tela desligada, ganhar gratuitamente o certificado deste curso e ainda ter acesso a outros 5.000 cursos online gratuitos.

ou continue lendo abaixo...
Download App

Baixar o aplicativo


app.put('/users/:id', (req, res) => {
  const userId = req.params.id;
  const newUserData = req.body;
  db.collection('users').findOneAndUpdate({ _id: ObjectId(userId) }, { $set: newUserData }, (err, result) => {
    if (err) {
      res.status(500).send({ error: 'An error occurred while updating the user' });
    } else {
      res.send(result.value);
    }
  });
});

Deletando um usuário (Delete)

Para deletar um usuário, precisamos de uma rota DELETE. Essa rota também deve incluir o ID do usuário que queremos deletar. Usamos o método findOneAndDelete do MongoDB para deletar o usuário.


app.delete('/users/:id', (req, res) => {
  const userId = req.params.id;
  db.collection('users').findOneAndDelete({ _id: ObjectId(userId) }, (err, result) => {
    if (err) {
      res.status(500).send({ error: 'An error occurred while deleting the user' });
    } else {
      res.send(result.value);
    }
  });
});

Tratamento de erros

O tratamento de erros é uma parte crucial do desenvolvimento de qualquer aplicação. Em todas as nossas rotas, verificamos se ocorreu um erro durante a operação do banco de dados. Se ocorreu um erro, respondemos com um status HTTP 500 e uma mensagem de erro. Isso permite que o cliente saiba que algo deu errado.

Em um ambiente de produção, você também deve considerar o registro de erros. Isso pode ser feito usando um pacote como o winston ou o morgan. Esses pacotes permitem que você registre automaticamente informações sobre erros e outras informações úteis.

Em resumo, o CRUD é um conceito fundamental no desenvolvimento de aplicações web. Com NodeJS e MongoDB, podemos implementar operações CRUD de maneira eficiente e fácil. O tratamento de erros é uma parte crucial disso, pois nos permite lidar com situações inesperadas de maneira elegante.

Agora responda o exercício sobre o conteúdo:

O que significa a sigla CRUD no contexto de desenvolvimento de aplicações web e quais operações ela representa?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

CRUD é uma sigla para Create, Read, Update, Delete, que em português significa Criar, Ler, Atualizar e Deletar respectivamente. Estas são as quatro operações básicas de armazenamento persistente, essenciais na maioria dos sistemas web para gerenciar dados.

Próximo capitúlo

Criando um CRUD com NodeJS e MongoDB: Testes unitários

Arrow Right Icon
Baixe o app para ganhar Certificação grátis e ouvir os cursos em background, mesmo com a tela desligada.