slo*_*gan 5 middleware node.js express
我想要一个中间件,例如每个路由的 Express 日志请求摘要末尾=>
[POST] /books/commentpart 200 1435.472 毫秒 - 35
我想在每个请求结束时记录更多数据。但我不知道如何编写这样的中间件。我在所有路线之后尝试了中间件功能,但它不起作用。在每个路由器中,我还传递 next() 调用。
app.use(responseTime());
//router
app
.use(users(app, db))
.use(dataLogs(app, db))
.use(category(app, db));
//log middleware
app.use(function(req, res, next) {
var data = {};
var method = req.method;
if(method == 'GET'){
data = req.query;
} else {
data = req.body;
}
var resTime = res.getHeader('X-Response-Time');
log.debug(' [ ' + iduser + ' ] - ' + req.route.path + ' - ' + resTime + ' : ' + JSON.stringify(data));
});
module.exports = app;
Run Code Online (Sandbox Code Playgroud)
中间件只是一个执行某些操作然后使用“next()”将请求传递给下一个函数的函数。因此,如果您真的想这样做,您需要在同一条路线中捕获所有路线,如下所示
app.all('*', (req, res) => {
// do something before
// your async code here
// do something after
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4135 次 |
| 最近记录: |