使用express.router找不到路线404

时间:2018-04-11 03:33:24

标签: node.js express express-router

我是一个非常新的表达和节点,我有两个路径处理程序具有相同的路径但不同的方法..我正在使用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();
            } 
        })
    }

1 个答案:

答案 0 :(得分:0)

你需要把它放在你的快递应用程序中,因为它只是一个路由器,并没有集成到你的快递应用程序,这就是为什么它返回404,因为它仍然找不到你的路由器。

const express = require('express')
const router = express.Router();
const app = express();

app.use(yourRouter);