我正在尝试实现一个记录器Express http://expressjs.com应用。我需要它能够记录请求以及为每个请求发回的响应(状态代码和正文)。我开始编写一个如下所示的中间件:
function (req, res, next) {
...
res.on('finish', function () {
Logger.debug('For request', req);
Logger.debug('Response sent');
});
...
}
我需要访问传递给的数据res
用于发送响应的对象方法。例如,如果在一个控制器中我有:
res.json({ foo: 'bar' })
我需要一种方法来实现它{ foo: 'bar' }
对象,可能是这样的:
function (req, res, next) {
...
res.on('finish', function () {
Logger.debug('For request', req);
var data = res.data; // or res.body, or whatever
Logger.debug('Response: ' + res.statusCode, data);
});
...
}
Express中有没有什么属性或方法res
我可以用这个对象吗?或者,是否有更好的策略来记录请求及其响应?