Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

1.2K
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!