A continuación se muestra el código del archivo app.js
var port = process.env.PORT || 8080; // set our port var express = require('express'); var app = express(); var bodyParser = require('body-parser') var cors = require('cors'); var indexRouter = require("./server/routes/index"); var http = require('http').Server(app); const path = require('path') const Licence = require('./server/CronJob/CronJob'); http.listen(port); app.use(cors()); app.use(bodyParser.json({ limit: '50mb' })); app.use(bodyParser.json({ type: 'application/vnd.api+json' })); app.use(bodyParser.urlencoded({ limit: '50mb', extended: true, parameterLimit: 50000 })); // parse application/json app.use(express.json()); app.use(express.urlencoded()); //Parse URL-encoded bodies app.use(function (req, res, next) { res.header("Access-Control-Allow-Origin", '*'); res.header("Access-Control-Allow-Credentials", true); res.header('Access-Control-Allow-Methods', 'GET,PUT,POST,DELETE,OPTIONS'); res.header("Access-Control-Allow-Headers", 'Origin,X-Requested-With,Content-Type,Accept,content-type,application/json'); res.header("Cache-Control", "no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0"); next(); }); app.use(express.static(path.join(__dirname, "/build"))); app.use(indexRouter); app.get('/*', function (req, res) { res.sendFile(path.join(__dirname, '/build/index.html'), function (err) { if (err) { res.status(500).send(err) } }) }) // Licence.licenceExpire(); console.log('Magic happens on port ' + port); // shoutout to the user exports = module.exports = app;Versión
expreso: ^ 4.17.1, analizador de cuerpo: ^ 1.19.0
y también usé la sugerencia dada en el blog a continuación
actualizar
He usado el analizador de cuerpo incorporado, pero obtengo el mismo error nuevamente aquí está la captura de pantalla de la función del analizador de cuerpo incorporado
Desde 4.16.0+ body-parser está incorporado en express
Utilice http://expressjs.com/en/api.html#express.json
app.use(express.json({ limit: '50mb' })); app.use(express.urlencoded())https://expressjs.com/en/changelog/4x.html#4.16.0
Se agregaron los middleware express.json() y express.urlencoded() para proporcionar soporte de análisis de cuerpo de solicitud listo para usar. Esto usa el módulo del módulo expressjs/body-parser debajo, por lo que las aplicaciones que actualmente requieren el módulo por separado pueden cambiar a los analizadores integrados.
https://github.com/expressjs/body-parser/commit/b7420f8dc5c8b17a277c9e50d72bbaf3086a3900
Esto desaprueba la exportación de middleware bodyParser() genérica que analiza tanto json como urlencoded. El middleware "todos" es muy confuso, porque suena como si analizara todos los cuerpos, aunque no hace varias partes, que es un tipo de cuerpo común. Además, los argumentos para los dos middleware diferentes comienzan a superponerse y es difícil configurarlos cuando se hace de esta manera.
Si estás usando este código
app.use(bodyParser.urlencoded({extended: true}));entonces puedes reemplazar este código con
app.use(express.urlencoded());y si estas usando
app.use(bodyParser.json());luego reemplace con
app.use(express.json()); Obtener el cuerpo de la solicitud ahora está integrado con express Entonces, simplemente puede usar
app.use(express.json()) //For JSON requests app.use(express.urlencoded({extended: true}));directamente desde expreso
Puede desinstalar body-parser usando npm uninstall body-parser
Luego, simplemente puede obtener el contenido POST de req.body
app.post("/yourpath", (req, res)=>{ var postData = req.body; //Or just like this, for string JSON body var postData = JSON.parse(req.body); });