Após termos abordado os conceitos básicos e intermediários de criação de APIs em NodeJS, chegamos ao ponto crucial do nosso curso e-book: a criação de um CRUD (Create, Read, Update, Delete) com NodeJS e MongoDB, e o deploy da nossa aplicação. Este capítulo 16.13 vai te guiar passo a passo para realizar essa tarefa tão importante.

Preparando o Ambiente

Primeiramente, certifique-se de que você tem o NodeJS e o MongoDB instalados em seu sistema. Se não, você pode baixá-los e instalá-los a partir de seus sites oficiais. Além disso, precisaremos do Postman para testar nossas APIs, e do Heroku CLI para o deploy da nossa aplicação.

Criando o Projeto NodeJS

Para criar um novo projeto NodeJS, abra o terminal e navegue até o diretório onde deseja criar o projeto. Em seguida, execute o comando "npm init" para inicializar um novo projeto. Isso criará um novo arquivo "package.json" em seu diretório, que contém informações sobre o seu projeto e as dependências que ele precisa.

Instalando as Dependências

Para o nosso projeto, precisaremos de algumas dependências: express, mongoose, body-parser e nodemon. Para instalá-las, execute o comando "npm install express mongoose body-parser nodemon".

Criando o Servidor Express

Agora, vamos criar o nosso servidor Express. Crie um novo arquivo chamado "server.js" e adicione o seguinte código:

```javascript const express = require('express'); const app = express(); const port = process.env.PORT || 3000; app.listen(port, () => { console.log(`Server is running on port ${port}`); }); ```

Este código cria um novo servidor Express que escuta na porta 3000.

Conectando ao MongoDB

Para conectar ao MongoDB, precisamos usar o Mongoose, uma biblioteca que nos permite interagir com o MongoDB de maneira fácil e direta. Adicione o seguinte código ao seu "server.js":

```javascript const mongoose = require('mongoose'); mongoose.connect('mongodb://localhost/test', { useNewUrlParser: true, useUnifiedTopology: true }) .then(() => console.log('Connected to MongoDB')) .catch(err => console.error('Could not connect to MongoDB', err)); ```

Este código conecta ao MongoDB rodando localmente na sua máquina.

Criando o CRUD

Para criar o CRUD, primeiro precisamos definir um modelo para os nossos dados. Crie um novo arquivo chamado "user.model.js" e adicione o seguinte código:

```javascript const mongoose = require('mongoose'); const User = mongoose.model('User', new mongoose.Schema({ name: String, email: String, password: String })); module.exports = User; ```

Este código define um modelo de usuário com três campos: nome, email e senha.

Agora, vamos criar as rotas para o nosso CRUD. Crie um novo arquivo chamado "user.routes.js" e adicione o seguinte código:

```javascript const express = require('express'); const router = express.Router(); const User = require('./user.model'); router.post('/', async (req, res) => { let user = new User({ name: req.body.name, email: req.body.email, password: req.body.password }); user = await user.save(); res.send(user); }); router.get('/', async (req, res) => { const users = await User.find(); res.send(users); }); router.get('/:id', async (req, res) => { const user = await User.findById(req.params.id); if (!user) return res.status(404).send('The user with the given ID was not found.'); res.send(user); }); router.put('/:id', async (req, res) => { const user = await User.findByIdAndUpdate(req.params.id, { name: req.body.name, email: req.body.email, password: req.body.password }, { new: true }); if (!user) return res.status(404).send('The user with the given ID was not found.'); res.send(user); }); router.delete('/:id', async (req, res) => { const user = await User.findByIdAndRemove(req.params.id); if (!user) return res.status(404).send('The user with the given ID was not found.'); res.send(user); }); module.exports = router; ```

Este código cria as rotas para criar, ler, atualizar e deletar usuários.

Deploy da Aplicação

Finalmente, vamos fazer o deploy da nossa aplicação. Para isso, vamos usar o Heroku, uma plataforma de hospedagem de aplicações em nuvem. Primeiro, precisamos criar um arquivo chamado "Procfile" no diretório raiz do nosso projeto. Este arquivo diz ao Heroku como iniciar a nossa aplicação. Adicione o seguinte código ao "Procfile":

``` web: node server.js ```

Em seguida, precisamos inicializar um novo repositório Git no nosso projeto. Execute os comandos "git init" e "git add ." para adicionar todos os arquivos ao repositório. Em seguida, execute "git commit -m 'Initial commit'" para fazer o commit dos arquivos.

Agora, precisamos criar uma nova aplicação no Heroku. Para isso, execute o comando "heroku create". Isso criará uma nova aplicação e adicionará um novo remote Git chamado "heroku" ao seu repositório.

Finalmente, podemos fazer o deploy da nossa aplicação. Para isso, execute o comando "git push heroku master". Isso enviará o código da nossa aplicação para o Heroku, que irá construir e iniciar a aplicação.

Parabéns! Você acabou de criar e fazer o deploy de uma aplicação CRUD com NodeJS e MongoDB! Agora você pode acessar a sua aplicação no endereço que o Heroku forneceu.

Agora responda o exercício sobre o conteúdo:

Qual é o processo para criar um CRUD (Create, Read, Update, Delete) com NodeJS e MongoDB como descrito no curso e-book?

Você acertou! Parabéns, agora siga para a próxima página

Você errou! Tente novamente.

Imagem do artigo Autenticação e autorização em API's NodeJS

Próxima página do Ebook Gratuito:

98Autenticação e autorização em API's NodeJS

3 minutos

Ganhe seu Certificado deste Curso Gratuitamente! ao baixar o aplicativo Cursa e ler o ebook por lá. Disponível na Google Play ou App Store!

Disponível no Google Play Disponível no App Store

+ de 6,5 milhões
de alunos

Certificado Gratuito e
Válido em todo o Brasil

48 mil exercícios
gratuitos

4,8/5 classificação
nas lojas de apps

Cursos gratuitos em
vídeo, áudio e texto