我是一个非常新的表达和节点,我有两个路径处理程序具有相同的路径但不同的方法..我正在使用express.router()
,我被建议链接像这样的路由处理程序
但我得到404找不到GET /状态,但如果我删除我的中间件.all(verifytoken)
statusRouter.route('/status')
.all(verifyToken)
.get(status.get)
.post(status.new);
/ statusController
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();
}
})
}
答案 0 :(得分:0)
你需要把它放在你的快递应用程序中,因为它只是一个路由器,并没有集成到你的快递应用程序,这就是为什么它返回404,因为它仍然找不到你的路由器。
const express = require('express')
const router = express.Router();
const app = express();
app.use(yourRouter);