16.10. Criando um CRUD com NodeJS e MongoDB: Tratamento de erros

Página 94

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.


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.

Now answer the exercise about the content:

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

You are right! Congratulations, now go to the next page

You missed! Try again.

Next page of the Free Ebook:

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

Earn your Certificate for this Course for Free! by downloading the Cursa app and reading the ebook there. Available on Google Play or App Store!

Get it on Google Play Get it on App Store

+ 6.5 million
students

Free and Valid
Certificate with QR Code

48 thousand free
exercises

4.8/5 rating in
app stores

Free courses in
video, audio and text