小编Nit*_*nse的帖子

在express中有选择地应用中间件

我的路由器中有一个路由/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)

我基本上试图覆盖最初的中间件,这可能吗?

middleware node.js express

2
推荐指数
1
解决办法
3040
查看次数

标签 统计

express ×1

middleware ×1

node.js ×1