我想用Common(Access)Log格式编写一个快速中间件打印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总是以-
为大小。这是否意味着无法获得尺寸?
答案 0 :(得分:-1)
试试这段代码:
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() );
});
});