Este capítulo do nosso e-book é dedicado a um aspecto fundamental do desenvolvimento de APIs com NodeJS: a criação de um CRUD (Create, Read, Update, Delete) utilizando MongoDB como banco de dados. Vamos abordar passo a passo como criar, ler, atualizar e deletar dados em um banco de dados MongoDB usando NodeJS.

Antes de começarmos, é importante entender o que é MongoDB. MongoDB é um banco de dados orientado a documentos, que armazena dados em documentos BSON, uma representação binária de JSON. Isso o torna muito flexível e escalável, perfeito para trabalhar com NodeJS.

Configurando o Ambiente

Primeiro, precisamos instalar o NodeJS e o MongoDB em nosso sistema. Depois de instalados, vamos criar um novo projeto NodeJS e instalar algumas dependências. Vamos usar o 'Express' para criar o servidor, o 'mongoose' para interagir com o MongoDB e o 'body-parser' para analisar o corpo das solicitações HTTP.

$ npm init
$ npm install express mongoose body-parser

Depois de instalar essas dependências, vamos configurar nosso servidor Express e conectar ao MongoDB usando o Mongoose.

const express = require('express');
const mongoose = require('mongoose');
const bodyParser = require('body-parser');

const app = express();

mongoose.connect('mongodb://localhost/crud-nodejs-mongodb', {useNewUrlParser: true, useUnifiedTopology: true});

app.use(bodyParser.json());
app.listen(3000, () => console.log('Server running on port 3000'));

Criando o Modelo de Dados

Antes de podermos trabalhar com nossos dados, precisamos definir um modelo de dados. Vamos criar um modelo de 'User' com campos 'name' e 'email'.

const mongoose = require('mongoose');
const Schema = mongoose.Schema;

const UserSchema = new Schema({
  name: String,
  email: String
});

module.exports = mongoose.model('User', UserSchema);

Criando as Rotas CRUD

Agora que temos nosso modelo de dados, podemos criar nossas rotas CRUD. Vamos criar um arquivo 'routes.js' e importar nosso modelo de 'User'.

const express = require('express');
const User = require('./models/User');
const router = express.Router();

Vamos começar com a rota 'Create'. Essa rota receberá uma solicitação POST com os dados do usuário e criará um novo usuário no banco de dados.

router.post('/users', async (req, res) => {
  const user = new User(req.body);
  await user.save();
  res.json({status: 'User Created'});
});

A rota 'Read' buscará todos os usuários no banco de dados e retornará uma resposta JSON com os dados dos usuários.

router.get('/users', async (req, res) => {
  const users = await User.find();
  res.json(users);
});

A rota 'Update' receberá uma solicitação PUT com o id do usuário e os novos dados do usuário. Ele encontrará o usuário no banco de dados e atualizará seus dados.

router.put('/users/:id', async (req, res) => {
  await User.findByIdAndUpdate(req.params.id, req.body);
  res.json({status: 'User Updated'});
});

Finalmente, a rota 'Delete' receberá uma solicitação DELETE com o id do usuário. Ele encontrará o usuário no banco de dados e o removerá.

router.delete('/users/:id', async (req, res) => {
  await User.findByIdAndRemove(req.params.id);
  res.json({status: 'User Deleted'});
});

Com isso, temos um CRUD completo com NodeJS e MongoDB. Esse é um exemplo básico, mas você pode expandir isso para se adequar às suas necessidades. Esperamos que este capítulo tenha sido útil para você aprender a criar um CRUD com NodeJS e MongoDB.

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

Qual é o propósito do CRUD no desenvolvimento de APIs com NodeJS e MongoDB?

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

Você errou! Tente novamente.

Imagem do artigo Criando um CRUD com NodeJS e MongoDB: Instalação do NodeJS

Próxima página do Ebook Gratuito:

85Criando um CRUD com NodeJS e MongoDB: Instalação do NodeJS

4 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto