[英]Using optional middleware in Express JS
我想知道在Express路由中使用可選的中間件看起來像這樣:
router.post("/findAvailableAgents", middleware1 || middleware2, (req, res))
您可以使用另一個中間件來決定是選擇middleware1還是middleware2
const decideMiddleware = (req, res, next) => {
if(condition) {
return middleware1(req, res,next)
} else {
return middleware2(req, res,next)
}
}
並在您的代碼中使用它
router.post("/findAvailableAgents", decideMiddleware, (req, res))
有兩種方法可以實現可選的中間件行為:
1)創建另一個中間件,檢查條件,然后將所有參數傳遞到所需的中間件。 例:
const middlewareStrategy = (req,res,next) => {
if(req.body.token1){
return middleware1(req,res,next);
}
return middleware2(req,res,next);
};
router.post("/findAvailableAgents", middlewareStrategy, handler);
2)以條件驅動的方式執行中間件邏輯執行。 例:
const middleware1 = (req,res,next) => {
if(req.body.token){
// execute some logic, then
return next();
}
// skip this middleware
next();
};
router.post("/findAvailableAgents", middleware1, middleware2, handler);
現在,您可以使用下面的代碼添加多個中間件
app.get('/',[middleware.requireAuthentication,middleware.logger], function(req, res){ res.send('Hello!'); });
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.