Como criar uma API com Node.js e MongoDB usando ES6
Published: 2023-04-26 13:00:00

Se você deseja criar uma API usando Node.js e MongoDB, você veio ao lugar certo. Neste artigo, vamos mostrar como criar uma API simples e eficiente usando essas tecnologias.

## Configuração do ambiente

Antes de começar, você precisará instalar o Node.js e o MongoDB em seu computador. Certifique-se de que ambos estejam instalados corretamente e de que você tenha um editor de código instalado, como o Visual Studio Code.

- [Se quiser, temos um artigo ensinando a baxiar e instalar o Node.js no seu computador](https://medium.com/code-write/aprenda-a-criar-um-servidor-node-js-do-zero-em-apenas-10-minutos-fd2892d204a3)
- [Instalação do MongoDB](https://dev.to/rodrigozan/como-instalar-o-mongodb-guia-passo-a-passo-para-windows-mac-e-linux-3hb)

## Criação de um projeto Node.js

O próximo passo é criar um novo projeto Node.js usando o gerenciador de pacotes npm. Abra o terminal e digite o seguinte comando:


```javascript 
npm init
```

Isso criará um arquivo package.json que será usado para gerenciar as dependências do projeto.

## Instalação das dependências

Agora que o projeto foi criado, é hora de instalar as dependências necessárias. Neste caso, precisaremos instalar o Express e o Mongoose. Abra o terminal e digite o seguinte comando:

```javascript 
npm install express mongoose --save
```

Isso instalará o Express e o Mongoose e os adicionará ao arquivo package.json.

## Configuração do servidor

Agora, precisamos configurar o servidor Express para lidar com as solicitações HTTP. Abra o arquivo app.js e adicione o seguinte código:
javascript


```javascript
const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.send('Olá, mundo!');
});

app.listen(3000, () => {
  console.log('Servidor rodando na porta 3000');
});
```

Este código configura um servidor Express básico que escuta as solicitações na porta 3000 e retorna "Olá, mundo!" quando uma solicitação é feita para a raiz do servidor.

## Configuração do MongoDB

Agora, precisamos configurar o Mongoose para se conectar ao MongoDB. Abra o arquivo app.js e adicione o seguinte código:

```javascript
const mongoose = require('mongoose');
mongoose.connect('mongodb://localhost/meu_banco_de_dados', { useNewUrlParser: true });
```

Este código se conecta ao MongoDB em localhost/meu_banco_de_dados usando as opções padrão do Mongoose.

## Criação do modelo

Agora, precisamos criar um modelo Mongoose para o nosso objeto de dados. Abra o arquivo app.js e adicione o seguinte código:

```javascript
const mongoose = require('mongoose');

const schema = new mongoose.Schema({
  nome: String,
  idade: Number,
});

const Pessoa = mongoose.model('Pessoa', schema);
```

Este código define um modelo Pessoa que tem dois campos: nome (do tipo String) e idade (do tipo Number).

## Criação das rotas

Agora, precisamos criar as rotas para nossa API. Abra o arquivo app.js e adicione o seguinte código:

```javascript
const express = require('express');
const mongoose = require('mongoose');

const app = express();
mongoose.connect('mongodb://localhost/meu_banco_de_dados', { useNewUrlParser: true });

const schema = new mongoose.Schema({
  nome: String,
  idade: Number,
});

const Pessoa = mongoose.model('Pessoa', schema);

// Rota para obter todas as pessoas
app.get('/pessoas', async (req, res) => {
  const pessoas = await Pessoa.find();
  res.send(pessoas);
});

// Rota para obter uma pessoa pelo ID
app.get('/pessoas/:id', async (req, res) => {
  const pessoa = await Pessoa.findById(req.params.id);
  res.send(pessoa);
});

// Rota para adicionar uma pessoa
app.post('/pessoas', async (req, res) => {
  const pessoa = new Pessoa({
    nome: req.body.nome,
    idade: req.body.idade,
  });
  await pessoa.save();
  res.send(pessoa);
});

// Rota para atualizar uma pessoa
app.put('/pessoas/:id', async (req, res) => {
  const pessoa = await Pessoa.findByIdAndUpdate(req.params.id, {
    nome: req.body.nome,
    idade: req.body.idade,
  }, { new: true });
  res.send(pessoa);
});

// Rota para excluir uma pessoa
app.delete('/pessoas/:id', async (req, res) => {
  const pessoa = await Pessoa.findByIdAndDelete(req.params.id);
  res.send(pessoa);
});

app.listen(3000, () => {
  console.log('Servidor rodando na porta 3000');
});
```

Este código define cinco rotas para nossa API: uma rota para obter todas as pessoas, uma rota para obter uma pessoa pelo ID, uma rota para adicionar uma pessoa, uma rota para atualizar uma pessoa e uma rota para excluir uma pessoa. Cada rota corresponde a uma operação CRUD básica e usa as funções do Mongoose para interagir com o MongoDB.

### Conclusão

Criar uma API com Node.js e MongoDB usando ES6 é uma tarefa relativamente simples, mas pode ser um pouco complicada se você nunca trabalhou com essas tecnologias antes. Neste artigo, mostramos como configurar o ambiente de desenvolvimento, criar um projeto Node.js, instalar as dependências necessárias, configurar o servidor Express, configurar o MongoDB, criar um modelo Mongoose e criar as rotas para nossa API.

Agora que você tem uma boa compreensão de como criar uma API com Node.js e MongoDB usando ES6, pode começar a criar suas próprias APIs e explorar as muitas possibilidades que essas tecnologias oferecem. Lembre-se de sempre seguir as melhores práticas de desenvolvimento e de manter seu código limpo e organizado.