中间件

ℹ️INFO

主要分为局部中间件和全局中间件,可对指定事件类型的 event 进行修改并向下传递

局部中间件

defineRouter 中通过分组实现。handler 返回 true 则允许继续执行 children 中的后续响应

src/response/mw.ts
export default () => {
  console.log('step 1')
  // 返回 true 允许 children 中的后续函数执行
  return true
}
src/response/res.ts
export default () => {
  console.log('step 2')
}

最终执行 res 的打印顺序为 step1step2

如果中间件不 return true,其结果只有 step1

全局中间件

src/middleware/**/*/mw.ts
export default (event, next) => {
  // 新增字段
  event['user_id'] = event.UserId

  // 常用于兼容其他框架或增强 event 功能

  // 继续下一个中间件
  next()
})