我有 2 个中间件,一个检查用户是否拥有有效 token ,第二个检查用户是否有权限。问题是,在调用第一个中间件后,程序直接进入我的路由方法,而不是调用第二个中间件。这是我的代码:
app.use(function(req, res, next) {
checkToken(req, res, next);
checkPermission(req, res, next);
});
app.post("/test", (req, res) => {
console.log("route");
})
function checkToken(req, res, next){
console.log("check token");
if(validToken())
next();
else
res.send("no valid token");
}
function checkPermission(req, res, next){
console.log("check permission");
if(permission())
next();
else
res.send("no permission");
}
我得到的输出:
check token -> route -> check permission
我期望的输出:
check token -> check permission -> route
我想让我的程序做的是在进入我的路由方法之前检查用户是否有有效的 token 以及他是否有权限!
这是正确的做法吗?
最佳答案
app.use(checkToken);
app.use(checkPermission);
app.post("/test", (req, res) => {
console.log("route");
});
...
关于node.js - 第二个中间件只在路由方法之后调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52681563/