Neste post vamos aprender do zero a criar um CRUD com Javascript, usando Node.js, Express e MongoDB.
CRUD significa Create (Criar), Read (Ler), Update (Atualizar) e Delete (Deletar), operações essenciais para qualquer aplicação que lida com dados. Vamos construir uma API simples para gerenciar vendas mensais, onde poderemos criar, ler, atualizar e deletar registros de vendas.
Se você quer entender do começo ao fim como tudo funciona, está no lugar certo. Aqui você vai aprender a fazer a aplicação, conectar com o banco de dados, criar rotas e muito mais.
Este conteúdo também está disponível em formato de vídeo! Se preferir, veja aqui embaixo ou entre no nosso canal do YouTube!
Para fazer o download do(s) arquivo(s) utilizados na aula, preencha com o seu e-mail:
Não vamos te encaminhar nenhum tipo de SPAM! A Hashtag Treinamentos é uma empresa preocupada com a proteção de seus dados e realiza o tratamento de acordo com a Lei Geral de Proteção de Dados (Lei n. 13.709/18). Qualquer dúvida, nos contate.
O que você vai aprender aqui?
O que é CRUD e para que serve?
CRUD são as iniciais de Create (Criar), Read (Ler), Update (Atualizar) e Delete (Deletar), as operações básicas que você pode realizar em um banco de dados.
Quando você tem uma API que faz essas operações, você consegue:
- Criar novos elementos.
- Ler todos os elementos existentes.
- Atualizar elementos existentes.
- Deletar elementos.
Essas quatro ações são fundamentais para criar APIs RESTful (quer saber mais? Aprenda a criar uma API REST com Node.js do zero!), que seguem padrões de comunicação entre sistemas.
No nosso caso, vamos usar o MongoDB como banco de dados e o Node.js com Express para criar a API.
Como configurar o MongoDB
Antes de começar, você precisa configurar o MongoDB.
Siga os passos abaixo:
- Crie uma conta no MongoDB Atlas: Se você ainda não tem uma conta, cadastre-se no MongoDB Atlas.
- Crie um Cluster: Após logar, crie um novo projeto e um cluster. Na primeira vez, você pode criar um cluster gratuito.
- Autorize seu IP: No painel do MongoDB Atlas, vá em Network Access e adicione seu IP para permitir a conexão.
- Obtenha a URI de conexão: No painel do cluster, clique em Connect e selecione Drivers. Copie a URI de conexão, que será usada no nosso código (veremos isso depois).
Como criar seu projeto Node.js
Vamos começar criando um novo projeto Node.js. No VS Code, crie uma pasta chamada aula e execute os seguintes comandos no terminal do programa:
cd aula
npm init -y
Isso inicializará um projeto Node.js com um arquivo package.json
na pasta aula.
Agora, vamos instalar as dependências necessárias:
npm install express mongoose dotenv
O que elas fazem?
- Express é um framework web para Node.js. Facilita a criação de APIs.
- Mongoose é uma biblioteca que modela objetos MongoDB.
- dotenv gerencia variáveis de ambiente.
Configurando o servidor Express
Crie um arquivo chamado server.js e adicione o seguinte código:
import express from "express"; import dotenv from "dotenv"; import mongoose from "mongoose"; import VendaMensal from "./VendaMensal.js"; dotenv.config(); const app = express(); const PORT = 3000; app.use(express.json()); const connectDB = async () => { try { await mongoose.connect(process.env.MONGO_URI); console.log("Conectado ao MongoDB"); } catch (error) { console.log("Erro ao conectar com o MongoDB", error); } }; connectDB(); app.listen(PORT, () => console.log(`O servidor está rodando na porta ${PORT}`));
Explicação:
- dotenv.config() carrega as variáveis de ambiente do arquivo .env.
- mongoose.connect() faz se conectar ao banco de dados MongoDB usando a URI fornecida no arquivo .env.
- app.use(express.json()): Middleware para parsear o corpo das requisições como JSON.
Criando as variáveis de ambiente
Clique com o botão direito na pasta e crie um arquivo chamado .env.
Dentro dele, crie uma variável chamada MONGO_URI com a senha da cluster fornecida no site do MongoDB.
Criando o Modelo de Dados
Agora, vamos criar um modelo para as vendas mensais. Crie um arquivo chamado VendaMensal.js e adicione o seguinte código:
import mongoose from "mongoose"; const VendaMensalSchema = new mongoose.Schema({ mes: Number, valorVendido: Number, }); export default mongoose.model("VendaMensal", VendaMensalSchema);
Explicação:
- mongoose.Schema define a estrutura do documento no MongoDB.
- mongoose.model cria um modelo a partir do schema, que será usado para interagir com a coleção no banco de dados.
- export default mongoose.model exporta o modelo e faz com que ele possa ser importado e usado pelo server.js.
Implementando as Rotas CRUD
Agora vamos implementar as operações CRUD na nossa API.
CREATE (Criar)
Para criar uma nova venda mensal, adicione a seguinte rota no arquivo server.js:
app.post("/vendas", async (req, res) => { try { const novaVenda = await VendaMensal.create(req.body); res.json(novaVenda); } catch (error) { res.json({ error: error.message }); } });
READ (Ler)
Para listar todas as vendas mensais, adicione a seguinte rota:
app.get("/vendas", async (req, res) => { try { const vendasMensais = await VendaMensal.find(); res.json(vendasMensais); } catch (error) { res.json({ error: error.message }); } });
UPDATE (Atualizar)
Para atualizar uma venda mensal existente, adicione a seguinte rota:
app.put("/vendas/:id", async (req, res) => { try { const vendaMensalAtualizada = await VendaMensal.findByIdAndUpdate( req.params.id, req.body, { new: true } ); res.json(vendaMensalAtualizada); } catch (error) { res.json({ error: error.message }); } });
DELETE (Deletar)
Para deletar uma venda mensal, adicione a seguinte rota:
app.delete("/vendas/:id", async (req, res) => { try { const vendaMensalDeletada = await VendaMensal.findByIdAndDelete( req.params.id ); res.json(vendaMensalDeletada); } catch (error) { res.json({ error: error.message }); } });
Testando a API
Agora que todas as rotas estão implementadas, você pode testar a API usando ferramentas como Postman ou Insomnia. Certifique-se de que o servidor está rodando:
node api.js
Exemplos de Requisições:
- POST /vendas: Cria uma nova venda mensal.
- GET /vendas: Lista todas as vendas mensais.
- PUT /vendas/:id: Atualiza uma venda mensal existente.
- DELETE /vendas/:id: Deleta uma venda mensal.
Conclusão – Como fazer CRUD com JavaScript usando Node.js, Express e MongoDB
Neste tutorial, criamos uma API completa e aprendemos a usar os comandos CRUD com Node.js, Express e MongoDB.
Aprendemos como configurar o servidor, criar modelos de dados e implementar as operações básicas de CRUD. Este é um ótimo ponto de partida para construir aplicações mais complexas que envolvem manipulação de dados.
Se você quer acessar mais conteúdos como esse com aulas e tutoriais sobre JavaScript, confira os outros posts do nosso blog!
Hashtag Treinamentos
Para acessar publicações de JavaScript, clique aqui!
Posts mais recentes de JavaScript
- Vue.js: o que é, como funciona, vantagens e como usarDescubra o que é Vue.js, suas vantagens e como começar a usar esse framework moderno para criar projetos incríveis. Aprenda agora!
- O que é arquivo JSON e como usá-lo na prática? [Guia completo]Descubra o que é um arquivo JSON, sua estrutura, vantagens e como usá-lo na prática. Aprenda a criar, abrir e aplicar JSON em seus projetos!
- Como criar gráficos com Chart.js e React – Passo a passoVamos aprender passo a passo como criar gráficos com Chart.js e React, desde a configuração até a integração com uma API de vendas.
Posts mais recentes da Hashtag Treinamentos
- Exercícios de Listening em Inglês – Como Melhorar sua CompreensãoFaça estes exercícios de listening em inglês e melhore sua compreensão! Descubra técnicas e estratégias para praticar e evoluir no aprendizado do idioma!
- TCP e UDP: o que são, diferenças e quando usarEntenda o que é TCP e UDP, as diferenças entre os protocolos, suas vantagens e quando usar cada um. Aprenda com exemplos práticos e linguagem acessível.
- Biblioteca NumPy: o que é, vantagens e como usarAprenda como usar a biblioteca NumPy no Python para otimizar o processamento de dados e melhorar sua eficiência em projetos de ciência de dados.
Redator de conteúdo na Hashtag Treinamentos. Produzo textos didáticos sobre tecnologia, buscando informar e engajar o público de forma acessível e descomplicada.