Accediendo a datos POST sin procesar en Express

Estoy intentando escribir un progtwig Hello World estúpidamente simple en Express que genera algunos datos básicos sobre la solicitud HTTP actual.

Para solicitudes POST, me gustaría ver el cuerpo POST sin procesar.

const express = require('express'); const app = express(); function handleRequest(req, res) { console.log('\n-- INCOMING REQUEST AT ' + new Date().toISOString()); console.log(req.method + ' ' + req.url); console.log(req.body); res.send('Hello World!'); } app.all('/*', (req, res) => handleRequest(req, res)); app.listen(3000, () => console.log('Example app listening on port 3000!')); 

Cuando req.body cualquier tipo de solicitud POST de Postman, req.body se configura como undefined . ¿Por qué es req.body vacío? ¿Cómo puedo imprimir los datos POST sin procesar? No necesito una versión analizada del cuerpo de POST, solo los datos en bruto.

Para leer el cuerpo de una solicitud de publicación necesita un analizador de cuerpo. Si también necesita analizar multipart / form-data necesita multer.

después de npm instalarlos:

 const express = require('express'); const multer = require('multer'); const bodyParser = require('body-parser'); const upload = multer(); const app = express(); // create application/json parser app.use(bodyParser.json()); // create application/x-www-form-urlencoded parser app.use(bodyParser.urlencoded({ extended: false })); function handleRequest(req, res) { console.log('\n-- INCOMING REQUEST AT ' + new Date().toISOString()); console.log(req.method + ' ' + req.url); console.log(req.body); res.send('Hello World!'); } app.post('/*', upload.any(), (req, res) => handleRequest(req, res)); app.all('/*', (req, res) => handleRequest(req, res)); app.listen(3000, () => console.log('Example app listening on port 3000!')); 
  1. Si requirió el análisis de datos de formulario codificados en url (no multiparte), así como JSON, intente agregar:

     var bodyParser = require('body-parser'); // Put these statements before you define any routes. app.use(bodyParser.urlencoded({ extended: true})); app.use(bodyParser.json()); 
  2. Para manejar datos de formularios de varias partes, el analizador de cuerpo bodyParser.urlencoded () no funcionará. Puede consultar esto para alternativas de extracción de datos de formulario-datos