Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

1.2K
Visualizações
express.js req.body indefinido en middleware

Actualmente estoy enfrentando un problema en mi aplicación de nodo.

al intentar usar middleware en una solicitud de publicación, el req.body se vuelve indefinido.

por ejemplo;

 router.post('/newpost', ensureAuthenticated, createPost, upload.single('file'), async (req, res) =>{ console.log(req.body); } async function createPost(req, res, next){ console.log(req.body); next(); }

cuando se ejecuta la función createPost, registra req.body como indefinido. pero cuando req.body se registra dentro del router.post, se define.

¿Es algo que me estoy perdiendo? o es esto simplemente no es posible de hacer.

También me aseguré de haber incluido bodyparser y haberlo inicializado antes de mis rutas.

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

bueno, acabo de probar y todo funciona bien, con mi sugerencia en el comentario

aquí está el contenido de mi prueba:

mi index.js

 const express = require('express') const router = express.Router() const app = express() const PORT = process.env.PORT || 3002 app.use(express.json()) const createPost = (req, res, next) => { console.log('createPost', req.body) next() } router.post('/newpost', createPost, (req, res) => { console.log('/nextpost', req.body) res.json({ message: 'ok' }) }) app.use('/', router) app.listen(PORT, () => { console.log( `server ready at http://localhost:${PORT}` ) })

y un archivo de cliente REST simple

 @HOST = http://localhost:3002 POST {{HOST}}/newpost Content-Type: application/json { "fname": "Bruno", "lname": "Alexandre", "nick": "balexandre" }

y el resultado es

 ❯ node .\index.js server ready at http://localhost:3002 createPost { fname: 'Bruno', lname: 'Alexandre', nick: 'balexandre' } /nextpost { fname: 'Bruno', lname: 'Alexandre', nick: 'balexandre' }

y la respuesta de la llamada

 HTTP/1.1 200 OK X-Powered-By: Express Content-Type: application/json; charset=utf-8 Content-Length: 16 ETag: W/"10-/VnJyQBB0+b7i4NY83P42KKVWsM" Date: Tue, 26 Jan 2021 19:59:21 GMT Connection: close { "message": "ok" }

captura de pantalla (haga clic para ver la imagen completa)

ingrese la descripción de la imagen aquí


Advertencia

asegúrese de pasar Content-Type: application/json en su solicitud POST , recuerde que le dijo a Express que quería que el cuerpo se analizara como .json() , así que asegúrese de que sepa que está pasando json como el cuerpo de la solicitud

un poco más de información... el req.body solo está undefined si no uso el analizador, como:

ingrese la descripción de la imagen aquí


Agregado

un repositorio de GitHub con solución funcional > https://github.com/balexandre/so65907925

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda