EXPRESS POST
Blog

Método POST no Express.js | Como Enviar JSON para uma API com Node.js

Se você está começando a estudar Back-end com JavaScript, provavelmente já entendeu como uma rota GET funciona. Mas existe uma dúvida que surge logo em seguida:

Como um formulário HTML envia informações para o servidor?

Quando você cria uma tela de cadastro, faz login em um sistema ou registra um novo produto, o navegador precisa enviar esses dados para uma API. Esse processo acontece utilizando o método POST.

Nesta aula vamos construir esse processo passo a passo utilizando Node.js, Express.js e JSON, entendendo não apenas como escrever o código, mas principalmente por que cada etapa é necessária.

Ao final do projeto você compreenderá como o Front-end e o Back-end se comunicam e estará preparado para evoluir para operações como PUT, DELETE e, posteriormente, para um CRUD completo.


Assista à aula

🎬 Live completa

🎬 Versão editada


O que é o método POST?

O protocolo HTTP possui vários métodos, chamados também de verbos HTTP.

Cada um possui uma responsabilidade diferente.

Os principais são:

  • GET → Buscar informações
  • POST → Enviar informações
  • PUT → Atualizar informações
  • DELETE → Remover informações

Nesta aula nosso foco é o POST, responsável por enviar dados do cliente para o servidor.

Sempre que um usuário:

  • cria uma conta;
  • realiza um cadastro;
  • faz login;
  • envia um formulário;

o navegador normalmente utiliza uma requisição POST.


Relembrando o método GET

Antes de iniciar o POST, fazemos uma rápida revisão do GET, responsável por buscar informações.

Durante essa revisão mostramos:

  • criação de rotas;
  • retorno de JSON;
  • códigos HTTP 200;
  • utilização de Query Parameters.

Essa revisão é importante porque permite compreender claramente a diferença entre buscar informações e enviá-las.


Query Parameters

Também mostramos como funciona o envio de informações diretamente pela URL.

Exemplo:

/login?email=aluno@email.com&senha=123456

Esse recurso é chamado de Query String.

Embora seja bastante utilizado para filtros, pesquisas e paginação, não é recomendado para informações sensíveis, pois os dados ficam visíveis na própria URL.

Essa comparação ajuda a entender por que formulários normalmente utilizam o método POST.


Criando a primeira rota POST

Depois da revisão iniciamos a construção da primeira rota POST utilizando Express.

Estrutura básica:

app.post("/alunos", (req, res) => {

});

Perceba que a estrutura é praticamente igual ao método GET.

A grande diferença está no verbo utilizado.

Agora a API passa a receber informações enviadas pelo cliente.


Enviando JSON para a API

Para testar nossa aplicação utilizamos o Thunder Client, uma extensão do Visual Studio Code muito utilizada para testar APIs.

Criamos uma requisição contendo um objeto JSON.

Exemplo:

{
    "nome": "Marcos",
    "curso": "Desenvolvimento de Sistemas"
}

Esse objeto será enviado para o servidor exatamente como aconteceria em um formulário HTML.


Por que utilizar express.json()?

Este é um dos pontos mais importantes da aula.

Muitos iniciantes simplesmente copiam:

app.use(express.json());

sem saber o motivo.

Na prática, esse Middleware informa ao Express que ele deverá interpretar requisições enviadas em formato JSON.

Sem essa configuração, o servidor recebe a requisição, porém não consegue interpretar corretamente o corpo da mensagem.

É exatamente por isso que esse Middleware aparece praticamente em todas as APIs desenvolvidas com Express.


Entendendo o req.body

Depois de configurar o Middleware, passamos a acessar os dados enviados pelo cliente utilizando:

req.body

É nesse objeto que ficam armazenadas todas as informações enviadas pelo Front-end.

Por exemplo:

const dados = req.body;

console.log(dados);

Agora a aplicação consegue acessar:

  • nome;
  • curso;
  • e-mail;
  • senha;
  • qualquer outro dado enviado pelo cliente.

Diferença entre req.params, req.query, req.headers e req.body

Durante a aula mostramos uma das maiores dúvidas de quem está aprendendo Express.

Cada propriedade possui uma finalidade diferente.

req.params

Captura parâmetros presentes na rota.

Exemplo:

/alunos/15

req.query

Captura informações enviadas pela URL.

Exemplo:

?pagina=2

req.headers

Contém informações sobre a requisição.

Entre elas:

  • navegador;
  • host;
  • Content-Type;
  • autorização;
  • cookies.

req.body

Recebe os dados enviados no corpo da requisição.

É onde normalmente chegam os dados enviados por formulários HTML.

Entender essa diferença evita uma enorme quantidade de erros durante o desenvolvimento de APIs.


O papel do Content-Type

Outro conceito muito importante apresentado nesta aula é o cabeçalho:

Content-Type: application/json

Esse cabeçalho informa ao servidor qual é o formato dos dados enviados.

Imagine que alguém lhe entregue uma caixa fechada.

Você sabe que existe alguma coisa dentro.

Mas não sabe se é:

  • um documento;
  • uma imagem;
  • um vídeo;
  • um arquivo JSON.

O Content-Type resolve exatamente esse problema.

Ele informa ao servidor qual formato deverá ser interpretado.

No Front-end, esse cabeçalho normalmente é enviado utilizando a Fetch API.


Criando um objeto com os dados recebidos

Após recebermos o JSON, criamos um novo objeto JavaScript utilizando as informações enviadas pelo cliente.

Também mostramos uma forma mais moderna de escrever objetos utilizando a sintaxe reduzida do JavaScript.

Esse recurso deixa o código mais limpo e mais utilizado em aplicações profissionais.


Status HTTP 201 Created

Ao finalizar a requisição, retornamos o código:

201 Created

Esse código possui um significado específico.

Ele informa que um novo recurso foi criado com sucesso.

Na prática:

  • Cadastro de usuário.
  • Cadastro de produto.
  • Cadastro de aluno.

Todos podem retornar 201 Created.

Utilizar corretamente os códigos HTTP torna sua API muito mais organizada e profissional.


Tecnologias utilizadas

Durante o desenvolvimento utilizamos:

  • JavaScript
  • Node.js
  • Express.js
  • Thunder Client
  • JSON
  • HTTP
  • API REST
  • Middleware
  • req.body
  • req.headers
  • req.params
  • req.query

O que você aprendeu

Ao concluir esta aula você será capaz de:

  • compreender quando utilizar GET e POST;
  • criar rotas POST no Express;
  • enviar dados utilizando JSON;
  • configurar o express.json();
  • acessar informações com req.body;
  • entender a função dos Headers HTTP;
  • utilizar corretamente o Content-Type;
  • diferenciar req.params, req.query, req.headers e req.body;
  • criar objetos a partir dos dados recebidos;
  • retornar corretamente o status HTTP 201.

Próximos passos

Esta aula representa apenas o começo do desenvolvimento de APIs.

Nas próximas aulas da série você aprenderá:

  • método PUT;
  • método DELETE;
  • CRUD completo;
  • persistência de dados em arquivos JSON;
  • integração entre Front-end e Back-end;
  • banco de dados;
  • APIs completas utilizando Node.js e Express.

Cada nova aula adicionará uma nova peça ao funcionamento de uma API real, permitindo que você compreenda todo o processo utilizado em aplicações profissionais.


Conclusão

Aprender o método POST vai muito além de decorar um trecho de código.

O verdadeiro objetivo é compreender como as informações saem do Front-end, atravessam uma requisição HTTP e chegam ao Back-end para serem processadas.

Quando você entende esse fluxo completo, conceitos como Middleware, Headers, JSON, req.body e Status HTTP deixam de ser apenas comandos e passam a fazer parte de um processo lógico que será utilizado em praticamente qualquer aplicação moderna.

Essa é justamente a proposta desta série: ensinar o funcionamento do desenvolvimento Back-end de forma prática, conectando teoria e implementação para que você construa uma base sólida antes de avançar para projetos maiores.

Leave a Reply

Your email address will not be published. Required fields are marked *