Dan*_*nte 4 javascript middleware backend express morgan
我试图创建一个没有任何包或库的自定义记录器中间件,它就像保存端点、方法和状态代码响应一样简单。
当我尝试保存状态代码时遇到问题,因为我的响应尚未到达控制器。我试图了解摩根是如何做到这一点的,因为它是我使用的第一个中间件,当我的后端响应时,它会记录状态代码。
有没有一种简单的方法,而无需我修改所有后端控制器?
或者更确切地说,我如何从这个中间件访问控制器的res.status ?
const createLog = (req, res, next) => {
const { method, url } = req;
const { statusCode, statusMessage } = res;
console.log(statusCode, statusMessage); // Both null when reach the middleware
next();
};
Run Code Online (Sandbox Code Playgroud)
Hei*_*ßen 12
在这里试试这个:
const createLog = (req, res, next) => {
res.on("finish", function() {
console.log(req.method, decodeURI(req.url), res.statusCode, res.statusMessage);
});
next();
};
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5993 次 |
| 最近记录: |