我想在express.js 中创建一个中间件函数。它可以监控每个请求和响应。我创建了一个中间件,但它只能监视请求,而不能监视响应。
function middlewareFunc (req,res,next) {
console.log(req.body , req.params , req.query);
next();
}
Run Code Online (Sandbox Code Playgroud)
你应该知道resinfunction(req, res, next)是 class 的一个实例http.ServerResponse。所以它可以监听finish事件,请参阅链接:https ://nodejs.org/api/stream.html#stream_event_finish
app.use(function (req, res, next) {
function afterResponse() {
res.removeListener('finish', afterRequest);
res.removeListener('close', afterRequest);
// action after response
}
res.on('finish', afterResponse);
res.on('close', afterResponse);
// action before request
// eventually calling `next()`
});
app.use(app.router);
Run Code Online (Sandbox Code Playgroud)
app.use()和 中间件可用于“之前”,并且close和finish事件的组合可用于“之后”。
| 归档时间: |
|
| 查看次数: |
2155 次 |
| 最近记录: |