路由中间件
路由中间件统一写在 middleware
目录下,同样要导出一个函数,如果路由指定了中间件,那么访问路由之前会先经过这里
import { Context, ExceptionType, Utils } from 'think-ts-lib'
// Token校验的中间件
export default (ctx: Context, next: () => void, error: ExceptionType) => {
const token = ctx?.header?.authorization?.split('Bearer ')?.[1] || ''
if (Utils.validateToken(token)) {
next()
} else {
error('非法请求或Token过期')
}
}
import { Context, ExceptionType, Utils } from 'think-ts-lib'
// Token校验的中间件
export default (ctx: Context, next: () => void, error: ExceptionType) => {
const token = ctx?.header?.authorization?.split('Bearer ')?.[1] || ''
if (Utils.validateToken(token)) {
next()
} else {
error('非法请求或Token过期')
}
}
ctx
代表上下文,可从中获取 headers
request
等
next()
该函数代表向下执行不阻拦
error()
该函数可以阻断程序向下执行并抛出异常,可以传三个参数,第一个参数设置抛出异常的消息内容,第二个参数设置错误码,第三个参数设置状态码。默认参数如下
(
msg: string = '请求错误',
errorCode: number = 30000,
statusCode: number = 400
)
(
msg: string = '请求错误',
errorCode: number = 30000,
statusCode: number = 400
)