Bem-vindo ao site John Pires!

Crie uma API com Node.js e MongoDB

Home/Javascript/Crie uma API com Node.js e MongoDB
CRUD nodejs

Escolher a ferramenta certa para uma aplicação web pode ser complicado. Mas se você escolher as deste projeto, vai tornar as coisas muito mais fáceis para você.

Dependendo do seu aplicativo, combinar Node.js e MongoDB funciona bem na maioria das vezes — especialmente se você usar uma estrutura de front-end como React (MERN), Angular (MEAN) ou Vue (MEVN).

Neste tutorial, você aprenderá como criar um aplicativo CRUD usando Node.js e MongoDB e escrever alguns testes básicos para sua API Node.js. O aplicativo se conectará a um banco de dados MongoDB e permitirá que os usuários criem, leiam, atualizem e excluam postagens do blog.

Vamos começar!

O que é MongoDB e por que você deve escolhê-lo?

MongoDB é um programa de banco de dados de código aberto, multiplataforma e orientado a documentos. É classificado como um sistema de gerenciamento de banco de dados NoSQL e emprega documentos semelhantes a JSON com esquemas opcionais.

Estas são algumas das razões pelas quais empresas e equipes de desenvolvimento de todos os tamanhos usam o MongoDB:

  • O poderoso modelo de dados de documentos do MongoDB permite que os desenvolvedores armazenem e recuperem dados em seus aplicativos rapidamente.
  • Ele possui uma excelente interface de usuário que permite aos desenvolvedores instalar o MongoDB e começar a escrever código imediatamente.
  • O MongoDB Atlas está disponível em qualquer grande nuvem pública (incluindo AWS, Azure e Google Cloud), em grandes data centers por meio da edição Enterprise Advanced ou gratuitamente por meio da edição Community de código aberto. A arquitetura horizontal e escalável do MongoDB pode suportar grandes volumes de dados e tráfego.
  • O MongoDB construiu um ecossistema de plataforma grande e bem desenvolvido. Possui uma comunidade global de desenvolvedores e consultores, facilitando a obtenção de assistência. Ele também fornece suporte de nível empresarial.

Usaremos o MongoDB com nosso aplicativo Node.js porque o Node.js tem um driver MongoDB Node.js que implementa o protocolo de rede e a API JavaScript necessários para ler e gravar facilmente em um banco de dados MongoDB local ou remoto.

Pré-requisitos

Para começar com este tutorial, certifique-se de ter o seguinte instalado:

Configuração do projeto Node.js

Agora vamos começar! Crie uma nova pasta e inicialize um novo projeto Node.js executando o comando abaixo.

mkdir crud-with-mongodb && cd crud-with-mongodb
npm init -y

O comando acima criará uma pasta chamada crud-with-MongoDB e inicializará um novo projeto Node.js criando um arquivo package.json.

Crie um novo arquivo e nomeie-o como app.js na pasta do projeto. Este é o arquivo raiz do seu projeto Node.js.

Agora, crie um aplicativo Node.js no arquivo app.js com o snippet de código abaixo.

Você criou um aplicativo Node.js básico que será executado na porta 3001 e adicionou um middleware que analisará os dados na carga útil da solicitação.

Instalar dependências para seu projeto Node.js

Com o projeto configurado, vá em frente e instale o Express, Mongoose e Nodemon.

npm i express mongoose nodemon

Você também precisará instalar Mocha, Chai e chai-http como dev-dependencies executando o comando abaixo.

npm i -D mocha chai chai-http

Após a instalação, abra o arquivo package.json e modifique os scripts com a seguinte configuração.

Você configurou o script de início e teste para seu aplicativo. O aplicativo executará testes de aplicativos usando o Mocha.

Configurando banco de dados MongoDB

Com os módulos necessários instalados, abra o arquivo app.js e adicione este trecho de código para configurar o MongoDB para seu aplicativo.

Você importou o pacote Mongoose e usou o método connect para estabelecer uma conexão com seu banco de dados MongoDB.

Construir uma Model

Com seu banco de dados MongoDB conectado ao seu aplicativo, crie um arquivo models/Blog.js no diretório raiz do projeto e adicione o seguinte.

Você criou um blogSchema e definiu a propriedade. Então, usando o esquema definido, você criou um modelo “Blog“.

Criando Serviço

Crie um arquivo services/BlogService.js no diretório raiz do projeto. Usar essa abordagem para criar lógica de negócios reutilizável é uma boa prática que impede você de reinventar a roda.

Abra o arquivo services/BlogService.js e adicione o snippet de código abaixo.

Isso importa o BlogModel da seção anterior para criar as operações CRUD para seu aplicativo.

Configurando Controllers

Agora você precisa de controladores para consumir os serviços que você criou. Crie um arquivo controllers/BlogController.js no diretório raiz do projeto e adicione este código.

Você criou os controladores e consumiu os serviços para:

  • criar um blogue – createBlog
  • obter todos os blogs – getAllBlogs
  • obter um blog – getBlogById
  • atualizar um blog – updateBlog
  • excluir um blog pelo seu id – deleteBlog
    Usei o try catch do JavaScript para lidar com erros e garantir que o servidor não falhe.

Retornamos os dados com status de “sucesso” para cada controlador. Se ocorrer um erro, retornaremos o erro com um status de 500.

Criando Rotas para os Controllers

Vamos agora criar as rotas para os controladores. Crie um arquivo routes/BlogRoutes.js no diretório raiz do projeto e adicione o snippet de código abaixo.

Você importou seus controladores e definiu as rotas para cada controlador usando o roteador Express.

Agora abra o arquivo app.js, importe o blogRouter e adicione um novo middleware para que seu aplicativo possa usar suas rotas definidas.

Quando você envia uma solicitação para a rota /api/blogs, o Express verifica as rotas na pasta de rotas e solicita rotas que correspondam à URL.

Escrevendo testes automatizados

Testes automatizados são cruciais para todos os aplicativos da web. Eles economizam tempo que, de outra forma, seria gasto executando testes repetitivos para ver se seu código funciona conforme o esperado. Você também evitará o custo adicional incorrido na execução de testes repetitivos.

Você precisará escrever alguns testes automatizados para garantir que sua API funcione conforme o esperado e fará isso usando o módulo chai.

Para começar, crie um arquivo test/test.js no diretório raiz do projeto e adicione o seguinte.

Antes de executar cada teste, excluímos todos os registros do banco de dados, para que cada teste possa começar com uma lousa em branco. Para todas as rotas, esperamos que a resposta contenha um objeto de blog. Também esperamos que todas as rotas retornem um status de “sucesso” se tudo correr bem.

Agora execute o comando abaixo para ver o resultado dos testes.

npm run test

No código acima, usamos o módulo chai que instalamos anteriormente para escrever testes automatizados para o aplicativo. Começamos importando o módulo chai, o modelo Blog e o módulo chai-http para executar o servidor. O módulo chai fornece um método — describe — para descrever o que o teste faz. Em seguida, usando o método it, descrevemos a saída de cada teste.

Para saber se a aplicação retorna a saída esperada, enviamos dados fictícios para o servidor, semelhante ao que um usuário faria ao usar a API.

Portanto, se tudo correr bem com os testes, você deverá ver uma saída como esta.

Neste post, você aprendeu como fazer um aplicativo CRUD usando Node.js e MongoDB.

Começamos apresentando o MongoDB e considerando por que um desenvolvedor o usaria antes de criar uma API de blog simples.

Como você usará Node.js e MongoDB em seu próximo projeto? Sinta-se à vontade para clonar o projeto deste tutorial e brincar com os recursos.

Código Fonte do projeto:

CRUD APP NodeJS e MongoDB.

Let’s Coding !

2 Comments

  1. agosto 25, 2022
    Elie

    Tres interessant! Merci John

    1. setembro 21, 2022
      John Pires

      De rien Elie, j’espere que ce post t’aider.

Leave a Comment

SIGN IN

Forgot Password