繁体   English   中英

Node.js 请求中止

[英]Node.js request aborted

我正在使用 express 和 body-parser 将大量数据从一台服务器发送到另一台服务器,但一段时间后我收到了这个异常:

{
    "message": "request  aborted",
    "code": "ECONNABORTED",
    "expected": 99010,
    "length": 99010,
    "received": 96872,
    "type": "request.aborted"
}

什么可能导致这种情况? 如果您需要更多信息,请告诉我。

更新这是我配置的限制:

application.use(bodyParser.json({ limit: '50mb' }));
application.use(bodyParser.urlencoded({ extended: true, limit: '50mb' }));

这是由 body-parser 使用的 raw body 抛出的异常

来自快递文档:

请求中止当请求在读取正文完成之前被客户端中止时,将发生此错误。 接收的属性将设置为请求中止之前接收的字节数,而预期的属性将设置为预期的字节数。 status 属性设置为 400,type 属性设置为“request.aborted”。

例如,如果您想处理从正文解析器抛出的所有请求

  'encoding.unsupported',
    'entity.parse.failed',
    'entity.verify.failed',
    'request.aborted',
    'request.size.invalid',
    'stream.encoding.set',
    'parameters.too.many',
    'charset.unsupported',
    'encoding.unsupported',
    'entity.too.large'

使用这个中间件

$ npm i express-body-parser-error-handler

并在您的 body-parser 初始化之后简单地将其放置

const bodyParserErrorHandler = require('express-body-parser-error-handler')
...
...

application.use(bodyParser.json({ limit: '50mb' }));
application.use(bodyParser.urlencoded({ extended: true, limit: '50mb' }));
application.use(bodyParserErrorHandler());
...

默认情况下,表示为2分钟超时。

检查此帖子https://stackoverflow.com/a/49746488/11277076

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM