Javascript 快速请求已中止
我正在使用Express.js实现我的后端。我经常犯错误。我不知道为什么Javascript 快速请求已中止,javascript,node.js,express,Javascript,Node.js,Express,我正在使用Express.js实现我的后端。我经常犯错误。我不知道为什么 我将源代码放到AWS Elastic Beanstalk并设置ELB。如果此错误触发更多次,将使所有用户无法连接到服务器。我总是重启Beanstalk实例来解决这个问题。但我不知道什么时候会触发这个错误。所以请帮我修一下 非常感谢 { BadRequestError: request aborted at IncomingMessage.onAborted (/var/app/current/no
我将源代码放到AWS Elastic Beanstalk并设置ELB。如果此错误触发更多次,将使所有用户无法连接到服务器。我总是重启Beanstalk实例来解决这个问题。但我不知道什么时候会触发这个错误。所以请帮我修一下
非常感谢
{
BadRequestError: request aborted
at IncomingMessage.onAborted (/var/app/current/node_modules/raw-body/index.js:231:10)
at IncomingMessage.emit (events.js:189:13)
at IncomingMessage.EventEmitter.emit (domain.js:441:20)
at abortIncoming (_http_server.js:449:9)
at socketOnClose (_http_server.js:442:3)
at Socket.emit (events.js:194:15)
at Socket.EventEmitter.emit (domain.js:441:20)
at TCP._handle.close (net.js:600:12)
message: 'request aborted',
code: 'ECONNABORTED',
expected: 18774,
length: 18774,
received: 0,
type: 'request.aborted',
expose: true,
statusCode: 400,
status: 400
}
当客户端在读取正文完成之前中止请求时,将发生此错误。status属性设置为400,type属性设置为'request.aborted'。请输入安装快速代码 请输入密码!!!!阅读multer js模块,我认为它对于发送请求正文数据很有用。更新一些源代码查看此链接:我发现在发送json时会触发此错误。json大小为15000B到2xxxxB。只有这个api有这个问题。其他api工作正常。这不是答案!请键入它,如注释。
app.use((req, res, next) => {
logger.info(`marker 1, ${req.header('Content-Type')}, ${req.header('Content-Length')}`)
next()
})
app.use(express.json({
type: 'application/json',
limit: '50mb',
strict: false,
verify: (req, res, buf, encoding) => {
logger.info(`marker 2, ${req.body.length}`)
}
}));
app.use(express.urlencoded({ extended: false }));
app.use(express.static(path.join(__dirname, 'public')));
// catch 404 and forward to error handler
app.use(function(e, req, res, next) {
// set locals, only providing error in development
logger.error(e);
const err = SQError.wrapError(e);
res.locals.message = err.message;
res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page
res.status(err.httpCode || 500);
var response = req.body.params ? req.body : {};
logger.error(err, req.app.get('env') === 'development' ? {method: req.body.method || ""} : {});
if(response.params)
response.params.error = err.toJson()
else
response = { error : err.toJson() }
res.json(response);
});