我具有以下目录结构
routes
- v1
- me
- index.js
- groups
- index.js
- payments.js
我所做的是,除非用户已登录(本地密码),否则无法访问routes/v1/groups/index.js
const controller = require(global.settings.paths.controllers +
'/v1/groups/index.js');
module.exports = function(router) {
//Must be logged on
router.use(
function(req, res, next) {
if (req.isAuthenticated()) {
return next();
} else {
return error('errors.logged_in.name', 'errors.logged_in.desc', res);
}
}
);
//Base
router.get('/', controller.profile);
};
我注意到的是,index.js脚本中传递到router.use()的中间件正在传递到routes/v1/groups/payments.js
这是目前的基本虚拟路由。
1)是否将所有router.use()中间件都传递到后续路由? 2)如果是这样,我如何避免这种情况(例如,我是否需要在单个路由中包括中间件?)。 3)是否可以消除这种行为?
理想情况下,在注册中间件时,如果您允许它在中间件基础上坚持到中间件的不同路由,那将是惊人的。我预见的另一个问题是示例中的Payments.js在index.js之前加载。如果我不将中间件添加到此脚本中,将可以访问。因此,应该对路由的连接方式进行一些控制。
任何建议和评论都将不胜感激!
谢谢