首页 > 解决方案 > Nodejs PayloadTooLargeError:请求实体太大

问题描述

在我的工作中,我们使用 express nodejs 来创建模拟。在性能测试期间,我们注意到对于大约 2 MB 的请求,nodejs 会抛出错误 ->

PayloadTooLargeError: request entity too large
at readStream (c:\Work\mocks\Mocks\tst\ver01\node_modules\raw-body\index.js:155:17)
at getRawBody (c:\Work\mocks\Mocks\tst\ver01\node_modules\raw-body\index.js:108:12)
at read (c:\Work\mocks\Mocks\tst\ver01\node_modules\body-parser\lib\read.js:77:3)
at jsonParser (c:\Work\mocks\Mocks\tst\ver01\node_modules\body-parser\lib\types    \json.js:135:5)
at Layer.handle [as handle_request] (c:\Work\mocks\Mocks\tst\ver01\node_modules\express\lib\router\layer.js:95:5)
at trim_prefix (c:\Work\mocks\Mocks\tst\ver01\node_modules\express\lib\router\index.js:317:13)
at c:\Work\mocks\Mocks\tst\ver01\node_modules\express\lib\router\index.js:284:7
at Function.process_params (c:\Work\mocks\Mocks\tst\ver01\node_modules\express\lib\router\index.js:335:12)
at next (c:\Work\mocks\Mocks\tst\ver01\node_modules\express\lib\router\index.js:275:10)
at expressInit (c:\Work\mocks\Mocks\tst\ver01\node_modules\express\lib\middleware\init.js:40:5)

根据其他说明,我应用了以下解决方案->

app.use(bodyParser.json({limit: "50mb", extended: true, parameterLimit:50000}));
app.use(bodyParser.urlencoded({limit: "50mb", extended: true, parameterLimit:50000}));

app.post('/marked-parcels', bodyParser({limit: '10mb'}), (req, res) => SendEmptyResponse(res));

但这些解决方案不起作用。我们检查了其他类型的 Web 服务作为 .net 核心 HttpListener。处理该请求没有问题,因此我们假设问题出在 nodejs 中。

有人可以建议我们如何在 nodejs 中处理该请求吗?也许是另一种可以帮助我们的解决方案。非常感谢所有的回答。

问候。

标签: node.jsexpressrequestbody-parser

解决方案


推荐阅读