【问题标题】:NodeJS Server crash when request/response.aborted当 request/response.aborted 时 NodeJS 服务器崩溃
【发布时间】:2017-01-16 20:55:54
【问题描述】:

当中止发送到 NodeJS-Express 服务器的 xmlHttpRequest 时,如果请求最终没有被处理或者由于请求被中止而无法发送响应,服务器会崩溃。

我使用连接标志来确保仅在连接建立时才发送响应。 我试图捕捉这些异常,但它们不处理请求中止事件:

var connected = true;
req.connection.on('close', function () {
    connected = false;
    // code to handle connection abort
});
res.on('error', function (err) {
    console.log("response couldn't be sent.");
    connected = false;
});
if(connected)
    res.send(...);

req.connection.removeListener('close', removeCallback);
res.removeListener('error', removeCallback);

我可以查看任何事件来处理导致服务器崩溃的“错误:请求中止”异常吗?

【问题讨论】:

    标签: node.js express


    【解决方案1】:

    根据 W3C 规范,XMLHttpRequest 发出一个“中止”事件。

    http://www.w3.org/TR/XMLHttpRequest/#event-handlers

    所以基本上,你可以听那个事件来处理错误,我猜。

    【讨论】:

      【解决方案2】:

      实际上,request.on('abort', fn) 应该可以很好地检测node.js 中的中止 HTTP 请求

      【讨论】:

        猜你喜欢
        • 2021-04-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-07
        • 2021-03-13
        • 1970-01-01
        相关资源
        最近更新 更多