Como receber dados no corpo da requisição (body) no Express.js?
No Express.js, os dados enviados no corpo da requisição (body) são essenciais para operações como criação de usuários, envio de formulários e atualizações de registros. Para capturá-los corretamente, precisamos utilizar um middleware adequado.
1. Configurando o middleware express.json()
Por padrão, o Express.js não interpreta automaticamente o corpo das requisições. Precisamos ativar o middleware express.json()
para processar JSON:
const express = require('express');
const app = express();
app.use(express.json());
app.post('/usuarios', (req, res) => {
const { nome, email } = req.body;
res.json({ mensagem: 'Usuário criado!', nome, email });
});
app.listen(3000, () => console.log('Servidor rodando na porta 3000'));
Agora, se enviarmos um POST para http://localhost:3000/usuarios
com o seguinte JSON:
{
"nome": "João",
"email": "joao@email.com"
}
A resposta será:
{
"mensagem": "Usuário criado!",
"nome": "João",
"email": "joao@email.com"
}
2. Capturando body
em formato URL-Encoded
Se a requisição vier de um formulário HTML, podemos ativar o middleware express.urlencoded()
:
app.use(express.urlencoded({ extended: true }));
Isso permite processar dados enviados como application/x-www-form-urlencoded
.
3. Tratando dados ausentes no body
Antes de processar os dados, é sempre uma boa prática validar a entrada:
app.post('/produtos', (req, res) => {
const { nome, preco } = req.body;
if (!nome || !preco) {
return res.status(400).json({ erro: 'Nome e preço são obrigatórios!' });
}
res.json({ mensagem: 'Produto cadastrado', nome, preco });
});
Agora, se enviarmos uma requisição sem o campo preco
, a API responderá com um erro:
{
"erro": "Nome e preço são obrigatórios!"
}
Conclusão
Capturar dados do body
no Express.js é essencial para manipular informações enviadas pelos clientes. O uso correto dos middlewares express.json()
e express.urlencoded()
garante que os dados sejam processados corretamente, evitando erros e melhorando a segurança da aplicação.
Por que é essencial capturar corretamente o corpo da requisição?
No desenvolvimento de APIs RESTful, processar corretamente os dados do corpo da requisição é fundamental. Diferentes aplicações enviam dados de maneiras variadas: JSON, formulários URL-Encoded ou até mesmo multipart/form-data para uploads de arquivos.
O Express.js facilita essa captura com seus middlewares nativos, garantindo que as informações cheguem ao servidor corretamente formatadas. Frameworks como NestJS e Fastify aprimoram esse conceito, adicionando camadas de validação e otimização para processamento de dados.
Algumas aplicações:
- Criação de usuários via API
- Envio de formulários de contato
- Atualização de perfis em aplicativos
- Processamento de pedidos de compra
- Manipulação de configurações enviadas pelo cliente
Dicas para quem está começando
- Sempre ative
express.json()
para processar JSON corretamente. - Use
express.urlencoded({ extended: true })
para processar formulários. - Valide os dados recebidos antes de processá-los.
- Teste requisições POST com ferramentas como Postman ou Insomnia.
- Se for trabalhar com upload de arquivos, utilize a biblioteca
multer
.
Contribuições de Henrique Almeida