javascript - 语法错误: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)
解决方案
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')
})
推荐阅读
- three.js - WebGl Globe(球体)上的镜像 Raycaster
- android - 使用首选项和配置更改 android 主题
- macos - 如何将coturn安装到mac
- angular - 如何防止 Angular Material 步进器上的事件
- css - CSS选择器以网格中的行为目标
- math - 将地心坐标系转换为与切平面对齐的坐标系?
- powershell - Ansible如何运行powershell脚本
- sql - Oracle SQL:SELECT 语句中的内联表?
- cmake - cmake(Windows 10):如何检查完整的编译器输入
- php - 更改 PHP 核心函数 strpos()?如何交换参数 $haystack 和 $needle?