为什么expression'sendFile函数将304视为错误?

我有一个expressjs服务器,使用sendFile函数将文件发送到客户端。 我使用函数的callback来了解何时发生错误。 现在看来,每当sendFile决定以304(这是我所期望的行为)作出响应,它的callback被调用以下错误:

Error: Request aborted: sendFile error at Object._onImmediate (.../node_modules/express/lib/response.js:941:17) at processImmediate [as _immediateCallback] (timers.js:336:15) { [Error: Request aborted: sendFile error] code: 'ECONNABORT' } 

我找不到任何关于这个的文档,我想知道如何确定什么时候忽略这个错误以及什么时候对它作出反应,因为看起来可能有其他的情况,这样的错误是一个问题的症状,而不仅仅是期望行为的副作用。

这确实是sendFile应该做的吗? 有没有关于这个的任何文件? 我如何区分这个错误与其他ECONNABORT错误?

response.statusCode可以帮助检测到这种情况,但我不知道这是否也会引发其他错误。 这是我修改的代码从文档改编

 res.sendFile(filename, options, function (err) { if (err) { if (err.code === "ECONNABORT" && res.statusCode == 304) { // No problem, 304 means client cache hit, so no data sent. console.log('304 cache hit for ' + filename); return; } console.error("SendFile error:", err, " (status: " + err.status + ")"); if (err.status) { res.status(err.status).end(); } } else { console.log('Sent:', filename); }