我正在使用带有express的节点js。现在我需要对所有请求执行常见操作。 cookie检查
app.get('/',function(req, res){
//cookie checking
//other functionality for this request
});
app.get('/show',function(req, res){
//cookie checking
//other functionality for this request
});
此处,cookie检查是所有请求的常见操作。那么如何在不重复所有app.get中的cookie检查代码的情况下执行此操作。
修复此问题的建议?提前致谢
答案 0 :(得分:8)
查看loadUser example from the express docs on Route Middleware。模式是:
function cookieChecking(req, res, next) {
//cookie checking
next();
}
app.get('/*', cookieChecking);
app.get('/',function(req, res){
//other functionality for this request
});
app.get('/show',function(req, res){
//other functionality for this request
});
答案 1 :(得分:3)
app.all
或使用中间件。
答案 2 :(得分:2)
使用中间件具有很高的推荐性,高性能且非常便宜。如果要执行的常见操作是一个很小的功能,我建议在 app.js 文件中添加这个非常简单的中间件:
...
app.use(function(req,res,next){
//common action
next();
});...
如果您使用路由器:在app.use(app.router);
指令之前编写代码。