我的路由器中有一个路由/users作为父后缀,所有后续路由将附加父路由,例如。/users/details
在我的 app.js 中
app.use('/api/v1/users', userRoutes);
Run Code Online (Sandbox Code Playgroud)
在我的用户路由中
import express from 'express';
import users from '../controllers/user_controller';
import { authenticateRoute, authenticateSignedRoute, aclAuthenticator } from './../middlewares/AuthenticationMiddleware';
const router = express.Router();
//user routes
router.get('/details', authenticateRoute, aclAuthenticator, users.getDetails);
router.get('/posts', authenticateRoute, aclAuthenticator, users.getPosts);
module.exports = router;
Run Code Online (Sandbox Code Playgroud)
我想做什么
有没有办法让我将authenticateRoute 和aclAuthenticator 中间件添加到父前缀路由中,然后对于一个特定路由有一个例外,即仅应用第三个中间件而不是前两个。
例如 app.use('/api/v1/users',authenticateRoute, aclAuthenticator, userRoutes);
我的新路由器文件
router.get('/details', applyOnlyThisMiddleWare, users.getDetails);
router.get('/posts', No MiddleWareAtAll, users.getPosts);
Run Code Online (Sandbox Code Playgroud)
我基本上试图覆盖最初的中间件,这可能吗?