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.


