繁体   English   中英

如何获取Node.js可写流的大小(HTTP服务器响应)

[英]How to get the size of a Node.js writable stream (HTTP server response)

我想以“通用(访问)日志”格式编写一个显示中间件的打印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的common-log总是发出-作为大小。 这是否意味着无法获得尺寸?

试试这个代码:

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() );
    });
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM