我创建了2个api-/ api1,/ api2和4个中间件-validate1,validate 2,validationResult,checkAdmin。我的路线太长了,我想保持它们整洁。
router.post('/api1', validate1, validationResult, checkAdmin, user.updateUserData);
router.post('/api2', validate2, validationResult, checkAdmin, user.CreateUser);
因此,我尝试了router.all()方法,并将所有常见的中间件放入该方法中。但是中间件没有按我想要的顺序运行。
router.all(“ *”,validateResult,checkAdmin)
//common middleware
router.all("*", validationResult, checkAdmin);
//routes
router.post('/api1', validate1, user.updateUserData);
router.post('/api2', validate2, user.updateUserData);
我可以通过任何方式订购这些中间件。订单-
验证中间件->验证结果-> checkAdmin
答案 0 :(得分:0)
还有另一种缩短语法的方法:
const adminChain = (validateX, userValidate) => [validateX, validationResult, checkAdmin, userValidate];
router.post('/api1', ...adminChain(validate1, user.updateUserData));
router.post('/api2', ...adminChain(validate2, user.CreateUser));
有关传播操作符here的更多信息。