一般来说,我是表达和节点的新手,我有两个具有相同路径但方法不同的路由处理程序。我正在使用express.router()
,并建议我像这样链接路由处理程序,但我得到 404 Not found for GET /status 但是如果我删除我的中间件,这些路线就可以工作.all(verifytoken)
statusRouter.route('/status')
.all(verifyToken)
.get(status.get)
.post(status.new);
/状态控制器
get:
(req, res) => {
Post.find({}, (err, posts) => {
if(err) throw err;
if(posts){
console.log(posts)
res.json({message: 'ok'})
}
})
},
new: (req, res) => {
// i omitted the code for simplicity
}
/中间件
const verifyToken = (req, res, next) => {
const token = req.headers.authorization.slice(7 - req.headers.authorization.length);
jwt.verify(token, process.env.KEY1, function(err, decoded) {
if(err) {
res.status(401).json({
message: "You're session has expired, please login again.",
type: 'error',
code: 401
})
}
if(decoded){
next();
}
})
}