【发布时间】:2021-05-08 21:20:29
【问题描述】:
我正在尝试在请求完成时自动记录。
我有这样的事情:
function (req, res, next) {
var startTime = clock.now();
res.on('end'. function() {
logger.trace("END ...", req.path, res.statusCode, clock.now() - startTime, ...);
});
res.on('error'. function() {
logger.trace("END ...", req.path, clock.now() - startTime, ...);
});
nest();
}
- 这样做是否涵盖所有情况? (例如,当请求被中断时)
- 对于每个请求,我最多会被调用一次吗?
如果有任何答案是否定的,请说明如何做。
【问题讨论】:
-
这个包对你的用例来说不够好吗? github.com/expressjs/response-time
-
不是。它只是随时间设置一个响应标头。我希望能够在请求结束时记录。 这包括何时被客户端中断。您提到的模块使用
on-headers,它修饰了res.writeHead函数。 onHeaders 函数不应在中断的请求上调用。 @1461269 @arjabbar
标签: javascript node.js express dom-events node-streams