首页 > 解决方案 > 语法错误:Illegal Break Statement on using next in middleware to pass to other middleware

问题描述

我正在尝试使用 amiddleware来验证我的用户令牌。当我试图使用next()移动到下一个中​​间时,问题就来了。我认为,不知何故,我next()的工作没有按应有的方式工作。请帮忙。

中间件代码:

async function verify(req,res,next){

    if(req.body.token==null) next("Tokken Not present")
    // verify token
    try{

        var isAuth=jwt.verify(req.body.token,process.env.secretKey);
       if(isAuth)next();
    }catch(err){
        next(err)
    }

}

错误信息:

> db connected 
>err handler reached 
>SyntaxError: Illegal break statement
>     at Layer.handle [as handle_request] (F:\recuritmentPortal\backend\node_modules\express\lib\router\layer.js:95:5)
>     at next (F:\recuritmentPortal\backend\node_modules\express\lib\router\route.js:138:13)
>     at verify (F:\recuritmentPortal\backend\middlewares\userVer.js:12:8)
>     at Layer.handle [as handle_request] (F:\recuritmentPortal\backend\node_modules\express\lib\router\layer.js:95:5)
>     at next (F:\recuritmentPortal\backend\node_modules\express\lib\router\route.js:138:13)
>     at Route.dispatch (F:\recuritmentPortal\backend\node_modules\express\lib\router\route.js:112:3)
>     at Layer.handle [as handle_request] (F:\recuritmentPortal\backend\node_modules\express\lib\router\layer.js:95:5)
>     at F:\recuritmentPortal\backend\node_modules\express\lib\router\index.js:281:22
>     at Function.process_params (F:\recuritmentPortal\backend\node_modules\express\lib\router\index.js:335:12)
>     at next (F:\recuritmentPortal\backend\node_modules\express\lib\router\index.js:275:10)
>     at Function.handle (F:\recuritmentPortal\backend\node_modules\express\lib\router\index.js:174:3)
>     at router (F:\recuritmentPortal\backend\node_modules\express\lib\router\index.js:47:12)
>     at Layer.handle [as handle_request] (F:\recuritmentPortal\backend\node_modules\express\lib\router\layer.js:95:5)

标签: javascriptnode.jsexpressjwtexpress-router

解决方案


    async function verify(req,res,next){

    if(req.body.token==null) 
        return next("Tokken Not present")
    // verify token
    try{

        var isAuth=jwt.verify(req.body.token,process.env.secretKey);
       if(isAuth)next();
    }catch(err){
        next(err)
    }

}

    app.use((error, request, response, next) => {
    response.status(500).send('error') 
})

推荐阅读