El servidor arroja este error cuando la aplicación del lado del cliente intenta enviar una solicitud POST con una imagen codificada en base64.
Error at readStream (/Users/.../node_modules/raw-body/index.js:196:17) at getRawBody (/Users/.../node_modules/raw-body/index.js:106:12) at read (/Users/.../node_modules/body-parser/lib/read.js:76:3) at jsonParser (/Users/.../node_modules/body-parser/lib/types/json.js:127:5) at Layer.handle [as handle_request] (/Users/.../node_modules/express/lib/router/layer.js:95:5) at trim_prefix (/Users/.../node_modules/express/lib/router/index.js:317:13) at /Users/.../node_modules/express/lib/router/index.js:284:7 at Function.process_params (/Users/.../node_modules/express/lib/router/index.js:335:12) at next (/Users/.../node_modules/express/lib/router/index.js:275:10) at cors (/Users/.../node_modules/cors/lib/index.js:179:7) at /Users/.../node_modules/cors/lib/index.js:229:17 at originCallback (/Users/.../node_modules/cors/lib/index.js:218:15) at /Users/.../node_modules/cors/lib/index.js:223:13 at optionsCallback (/Users/.../node_modules/cors/lib/index.js:204:9) at corsMiddleware (/Users/.../node_modules/cors/lib/index.js:209:7) at Layer.handle [as handle_request] (/Users/.../node_modules/express/lib/router/layer.js:95:5)Revisé dos veces el cuerpo de la solicitud: la cadena base64 no tiene un formato incorrecto. Si la aplicación envía la misma solicitud sin la parte base64, todo va bien.
servidor.js:
import http from 'http' import express from 'express' import cors from 'cors' import morgan from 'morgan' import bodyParser from 'body-parser' import api from './api' import config from './config' let app = express() app.server = http.createServer(app) // logger app.use(morgan('dev')) // 3rd party middleware app.use(cors({ exposedHeaders: config.corsHeaders })) app.use(bodyParser.json({ limit : config.bodyLimit })) app.use(express.static("./assets")) // api router app.use('/api', api) app.server.listen(process.env.PORT || config.port) console.log(`Started on port ${app.server.address().port}`) export default appapi.js
import { Router } from 'express'; const router = Router(); router.post('/createPost', require('./methods/createPost').default) export default routerCreo que es lo mismo que este problema:
Error: entidad de solicitud demasiado grande
El límite del analizador de cuerpo está configurado demasiado bajo (el valor predeterminado es 100k).
En mi caso, encontré que el límite de configuración: '50mb' como se describe en la solución en el enlace anterior solucionó mi problema:
app.use(bodyParser.json({limit: '50mb'}));Parece que su límite se establece en la configuración.