@soapi/middlewares
@soapi/sdk常用中间件。
Install
npm install @soapi/middlewares
or use yarn
yarn add @soapi/middlewares
Usage
compose(middlewares)
参数是一个middleware
数组。将多个middleware组合成一个新的middleware。
checkSchema([errorHandler])
校验接口参数和返回值是否符合接口平台定义的规范。 errorHandler是一个可选参数,处理校验错误。如果不穿此参数,错误会被抛出。
setEnv()
设置环境变量,影响最终请求的url地址。
setHeader(key, value)
设置请求的Header。
catchError(errorHandler)
捕获错误并对错误进行处理。catchError只会处理后面中间件抛出的错误,app.use
与koa
的洋葱模型一致。
app.use(catchError(error => {
console.log('what the fuck!')
/**
* 这里如果不抛出错误
* sdk会认为您已经将错误正确的处理,并将继续执行
* 这将导致sdk的api被调用时候,向外抛出的错误被中间件拦截并处理
* 调用的地方将无法得知错误的发生,并按照正常调用处理
*/
throw error
}))
sdk会认为您已经将错误正确的处理,并将继续执行 这将导致sdk的api被调用时候,向外抛出的错误被中间件拦截并处理 调用的地方将无法得知错误的发生,并按照正常调用处理
Q&A
错误上报
import { sendError } from 'sheinq'
import { catchError } from '@soapi/middlewares'
const reportErrorMiddleware = catchError(error => {
sendError(error)
throw error
})
app
.use(reportErrorMiddleware)
// checkSchema写在后面,report
.use(checkSchema())