【发布时间】:2017-03-08 18:41:47
【问题描述】:
我使用 Node.js + Express JS 开发了一个 API,并使用基于令牌的身份验证。
我在这个 api 中使用了两个不同的路由器,userRoute (/USER) 和 postRoute (/POST)。 postRoute 可以在身份验证中使用,但 userRoute 需要令牌。
为了解决我为 userRoute 使用路由器中间件但它干扰了 portRoute
这是代码:
...
var postRoute = express.Router();
var userRoute = express.Router();
// Route middleware to verify a token
userRoute.use(function(req, res, next) {
security.checkToken(req,res, next);
});
userRoute.route('/users')
.get(userCtrl.findAllUsers)
.post(userCtrl.addUser);
postRoute.route('/posts')
.get(userCtrl.findAllPosts)
.post(userCtrl.addPost);
app.use(userRoute);
app.use(postRoute);
...
如果我尝试访问“/posts”,服务器会检查令牌并且不让我进入。我知道我是否更改了 app.use 的顺序,它可以工作,但我不明白为什么我会以这种方式工作使用“路由器中间件”。
有人知道吗?
【问题讨论】:
标签: node.js express middleware