【发布时间】:2016-06-01 21:20:37
【问题描述】:
我正在尝试在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。
标签: javascript node.js express logging