estoy tratando de poner un límite de carga útil de 1kb usando:
app.use(bodyParser.json({ limit: "1kb" , strict:true }));funciona perfectamente como se supone que funciona, pero el único problema es que aparece un error de
PayloadTooLargeError: request entity too large at readStream (E:\Work\FIGHTME\V1.0\api\node_modules\raw-body\index.js:155:17) at getRawBody (E:\Work\FIGHTME\V1.0\api\node_modules\raw-body\index.js:108:12) at read (E:\Work\FIGHTME\V1.0\api\node_modules\body-parser\lib\read.js:77:3) at jsonParser (E:\Work\FIGHTME\V1.0\api\node_modules\body-parser\lib\types\json.js:135:5) at Layer.handle [as handle_request] (E:\Work\FIGHTME\V1.0\api\node_modules\express\lib\router\layer.js:95:5) at trim_prefix (E:\Work\FIGHTME\V1.0\api\node_modules\express\lib\router\index.js:317:13) at E:\Work\FIGHTME\V1.0\api\node_modules\express\lib\router\index.js:284:7 at Function.process_params (E:\Work\FIGHTME\V1.0\api\node_modules\express\lib\router\index.js:335:12) at next (E:\Work\FIGHTME\V1.0\api\node_modules\express\lib\router\index.js:275:10) at expressInit (E:\Work\FIGHTME\V1.0\api\node_modules\express\lib\middleware\init.js:40:5)¿Hay alguna forma de manejar este error a través de la devolución de llamada o algo así para que muestre un error personalizado o envíe una respuesta personalizada?
¿Has probado así?
app.use(express.json({limit: '1kb'}));El cuerpo de solicitud de análisis como middleware está disponible en Express v4.16.0 en adelante.
EDITAR
Si desea personalizar su mensaje de error, debe definir su middleware de controlador de errores para hacerlo. Algo como esto:
// Not tested code. // Usually added as last middleware app.use(function (err, req, res, next) { if(err instanceof PayloadTooLargeError){ //res.status(<your status code>).send(<your response>); res.status(400).send("Customized Response"); } else{ next(err); } })