如何获得Node.js可写入stream的大小(HTTP服务器响应)
我想用普通(Access)日志格式编写一个打印HTTP访问日志的中间件。 这种格式的最后一列是响应主体的大小(以字节为单位)。
如何确定由Node.js服务器产生的HTTP响应的大小?
不起作用的示例:
app.use(function(req, res, next) { var bytes = 0; res.on('data', function(chunk) { bytes += chunk.length; }); res.on('finish', function() { // `bytes` is the response size console.log(/* common log entry */); }); });
我已经做了一些研究,例如Hapi的共同日志总是发出-
作为大小。 这是否意味着无法获得大小?
试试这个代码:
app.use(function(req, res, next) { var data = []; res.on('data', function(chunk) { data.push(chunk); }); res.on('finish', function() { console.log( Buffer.concat(data).toString().length() ); }); });