在res.end()之后Restify(Node)连接没有closures

我们有一个Node / Restify应用程序,我遇到了这个问题(有些代码已经被省略了,所以请忽略缺less的标识符):

server.post('/report', requireAuth, function (req, res, next) { generateReport(err, result, extension, contentType) { // Filename for the report var filename = 'Report_' + moment().format('YYYY-MM-DD_HH:mm:ss') // Output the result directly with a lower-level APIs res.writeHead(200, { 'Content-Length': Buffer.byteLength(result), 'Content-Type': contentType, 'Content-Disposition': 'attachment;filename='+filename+'.'+extension }) res.write(result, 'utf8') res.end() console.log('ended') return next() } }) 

问题是,在发送输出之后,即使我调用res.end(),与客户端的连接也不会closures。 (res只是标准HTTP ServerResponse模块的一个包装)。
return next()注释return next()没有任何区别。
我可以看到在控制台“结束”,我知道内容发送到客户端,因为如果我强制终止连接(通过简单地终止节点进程),客户端具有所有的输出。

我究竟做错了什么?

编辑

除去Content-Length标题,而是使其工作。 这是为什么? (使用该标题的build议是文档的一部分)

EDIT2

Buffer.byteLength(result)的值是4478字节,但是客户端(Postman)下载的数据是4110,这就是连接没有closures的原因(客户希望接收更多的数据)。 这怎么可能?