我应该在响应完成时处理快速响应(流)对象中处理什么事件?

时间:2016-07-08 18:52:33

标签: node.js express javascript-events node-streams

我正在尝试在请求完成时自动记录。

我有这样的事情:

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();
}
  • 这样做是否涵盖所有案件? (例如,当请求被中断时)
  • 每次请求我最多会被调用一次吗?

如果任何答案为否,请说明如何操作。

感谢。

1 个答案:

答案 0 :(得分:1)

根据documentation

尝试设置完成事件

以下是一个示例实现:

app.use(function(req, res, next) {
    res.on('finish', function() {
        console.log('the response has been sent', res.statusCode);
    });
    next();
});