Crie uma API com Node.js Express MongoDB e Mongoose – API RESTful
Introdução
O desenvolvimento de API’s é uma parte essencial em qualquer aplicação web moderna. Hoje, vamos aprender como criar uma API RESTful usando Node.js, Express, MongoDB e Mongoose.
Passo 1: Configurando o ambiente
Antes de começar, certifique-se de ter o Node.js instalado em seu computador. Você pode baixá-lo em https://nodejs.org.
Após a instalação do Node.js, abra o terminal e execute o seguinte comando para instalar o Express:
npm install express
Em seguida, instale o MongoDB em sua máquina. Você pode encontrar instruções de instalação adequadas para o seu sistema operacional em https://docs.mongodb.com/manual/installation/.
Por fim, instale o Mongoose, uma biblioteca Node.js que fornece uma camada de modelagem para interagir com o MongoDB:
npm install mongoose
Passo 2: Criando o servidor
Crie um arquivo chamado server.js
e adicione o seguinte código:
const express = require('express');
const mongoose = require('mongoose');
const app = express();
mongoose.connect('mongodb://localhost/minhaapi', {
useNewUrlParser: true,
useUnifiedTopology: true
}).then(() => {
console.log('Conectado ao MongoDB');
}).catch((error) => {
console.log('Erro ao conectar ao MongoDB: ' + error);
});
app.listen(3000, () => {
console.log('Servidor rodando na porta 3000');
});
Este código cria uma instância do servidor Express e conecta-se ao banco de dados MongoDB usando o Mongoose.
Passo 3: Criando os modelos
Em seguida, crie um diretório chamado models
e dentro dele crie um arquivo chamado produto.js
. Adicione o seguinte código:
const mongoose = require('mongoose');
const ProdutoSchema = new mongoose.Schema({
nome: String,
descricao: String,
preco: Number
});
module.exports = mongoose.model('Produto', ProdutoSchema);
Este código define o esquema para o modelo Produto, que será usado para interagir com a coleção produtos no MongoDB.
Passo 4: Criando as rotas
Crie um diretório chamado routes
e dentro dele crie um arquivo chamado produtoRoute.js
. Adicione o seguinte código:
const express = require('express');
const router = express.Router();
const Produto = require('../models/produto');
router.get('/produtos', async (req, res) => {
try {
const produtos = await Produto.find();
return res.json(produtos);
} catch (error) {
return res.status(500).json({ error: 'Erro ao buscar produtos' });
}
});
router.post('/produtos', async (req, res) => {
try {
const produto = await Produto.create(req.body);
return res.json(produto);
} catch (error) {
return res.status(500).json({ error: 'Erro ao criar produto' });
}
});
module.exports = router;
Este código define as rotas para buscar todos os produtos e criar um novo produto. Ele usa o modelo Produto para interagir com o banco de dados.
Passo 5: Configurando as rotas
Volte ao arquivo server.js
e adicione o seguinte código abaixo da linha const app = express();
:
const produtoRoute = require('./routes/produtoRoute');
app.use('/api', produtoRoute);
Este código configura as rotas para acessar as funcionalidades de busca e criação de produtos através da URL /api.
Passo 6: Testando a API
Com tudo configurado, você pode testar a API utilizando ferramentas como o Postman ou Insomnia. Faça requisições GET para http://localhost:3000/api/produtos
e POST para http://localhost:3000/api/produtos
para listar e criar produtos, respectivamente.
Conclusão
Parabéns! Você aprendeu como criar uma API RESTful usando Node.js, Express, MongoDB e Mongoose. Agora você pode expandir essa API adicionando outras funcionalidades, como atualização e exclusão de produtos.
⭐ Conheça a nossa plataforma de cursos: https://www.horadecodar.com.br/comunidade-hora-de-codar/
Parabens pelo vídeo, mas eu fiquei com uma dúvida. Porque na hora de criar uma festa é passado um Service com todos os atribuitos dele (titulo, preço….) ao inves de so o ID daquele serviço?
A qual curso o front-end está relacionado no site?
No minuto 13:07 após eu realizar o comando npm start, o nodemon apresenta um erro “nodemon app crashed – waiting for file changes before starting site” já tentei muitas coisas e não deu certo
Poderia me dizer se ainda está disponível a aula do React integrado a esse backend? Se sim, em qual dos cursos que está?
muito obrigada 😍😍
Muito bom! Adorei a metodologia!
Essas funções do login eu posso escrever ela em um arquivo do controller e exporta-las no app.js ? Pra não ficar tudo junto.
Muito util, parabens!
Otimo video naum sabia nada de mongoDB e e o seu tutorial foi excelente! Obrigado por compartilhar.
Esse vídeo merece mais que uma doação ! já sou aluno a tempo mais, esses vídeos ajudam mais que de mais!
Olá amigo tudo certiho! sou novo em base de dados mongoDB , e tenho uma grande dúvida e gostaria de saber se o amigo pode me ajudar a esclarecer! Sou o Uilisson Silva , e a minha dúvida amigo é a seguinte ,exemp: em um restaurante usamos um soft com essa base de dados mongoDB e não tem Réplica Set , a loja encontra se em produção realizando várias vendas com mesas abertas digamos quer 250 mesas em produção , se o meu servidor queimar ou o sistema operacional corromper , existe alguma maneira de copia essa base de dados com todas as minhas mesas em produção , e subir essa base de dados em outra máquina para o sistema voltar a funcionar com todas as mesas que já estava lançadas ?
Olá, seus vídeos são ótimos, sempre acompanho. Tenho uma dúvida, na cloud do mongo, não tem para mim a opção Connect your application.
Tu ta usando Linux pra dar suporte ao Mongo ou é uma maquina virtual?
Bom dia. Este video completo com o projeto de frontend esta em qual curso?
Qual extensão no vs code que vc usa pra salvar o codigo e ele auto completar os pontos e virgulas?
Excelente curso, porém, faltou explicar como fazer o deploy, principalmente da api. Você tem algum vídeo que ensina isso?
Cara muito top!!! parabéns!!
oi, tem algum video seu com junção no flutter?
muito bom. Só faltou a integração com o front kkk