我正在尝试在Express应用程序中实现记录器。我需要它能够记录每个请求的请求和响应(状态代码和主体)发送回来。我开始编写一个这样的中间件:
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
对象中可以用来记录请求和响应的属性或方法?或者,是否有更好的策略来记录请求和相应的日志?
express-interceptor
。 - robertklep