,

Creating a RESTful API with Node.js, Express, MongoDB, and Mongoose

Posted by








Crie uma API com Node.js Express MongoDB e Mongoose – API RESTful

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.

Artigo escrito por Nome do Autor | Publicado em Data de Publicação


0 0 votes
Article Rating
21 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Matheus Battisti - Hora de Codar
7 months ago

⭐ Conheça a nossa plataforma de cursos: https://www.horadecodar.com.br/comunidade-hora-de-codar/

Quase Engenheiro
7 months ago

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?

Demetrio Torgan
7 months ago

A qual curso o front-end está relacionado no site?

Nando Edson
7 months ago

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

hashcatcher
7 months ago

Poderia me dizer se ainda está disponível a aula do React integrado a esse backend? Se sim, em qual dos cursos que está?

Dinah Martins
7 months ago

muito obrigada 😍😍

Wilknis Deyvis
7 months ago

Muito bom! Adorei a metodologia!

Lucas Henrique
7 months ago

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.

metratonpr
7 months ago

Muito util, parabens!

Pre. Felipe Ferreira
7 months ago

Otimo video naum sabia nada de mongoDB e e o seu tutorial foi excelente! Obrigado por compartilhar.

Sebastião Rodrigo
7 months ago

Esse vídeo merece mais que uma doação ! já sou aluno a tempo mais, esses vídeos ajudam mais que de mais!

3TKC INFORMÁTICA
7 months ago

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 ?

Matheus Orlandi
7 months ago

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.

Gustavo Reis de Carvalho
7 months ago

Tu ta usando Linux pra dar suporte ao Mongo ou é uma maquina virtual?

Marcelo Antonio Reis Ribeiro
7 months ago

Bom dia. Este video completo com o projeto de frontend esta em qual curso?

RRR PARAIBA
7 months ago

Qual extensão no vs code que vc usa pra salvar o codigo e ele auto completar os pontos e virgulas?

Odair Sousa
7 months ago

Excelente curso, porém, faltou explicar como fazer o deploy, principalmente da api. Você tem algum vídeo que ensina isso?

Sidão Machado
7 months ago

Cara muito top!!! parabéns!!

Psycho
7 months ago

oi, tem algum video seu com junção no flutter?

Alexandre Mariano
7 months ago

muito bom. Só faltou a integração com o front kkk