16. Criando um CRUD com NodeJS e MongoDB

Página 84

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.

Now answer the exercise about the content:

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

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

You missed! Try again.

Next page of the Free Ebook:

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

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