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!
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:
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.
Para começar com este tutorial, certifique-se de ter o seguinte instalado:
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.
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.
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.
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“.
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.
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:
Retornamos os dados com status de “sucesso” para cada controlador. Se ocorrer um erro, retornaremos o erro com um status de 500.
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.
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.
Let’s Coding !
Elie
Tres interessant! Merci John
John Pires
De rien Elie, j’espere que ce post t’aider.