02-中间件机制

nobility 发布于 2024-09-16 02-Koa2 1812 次阅读


中间件机制

沿用Express中的中间件机制,Koa并没有捆绑任何中间件,所有中间件都是单独的中间件包需要时另外引入即可,只有use()方法,并且不能指定第一个参数为请求路径(会报错),只能是一个方法,没有像express那样get()post()等方法,这些方法被抽取到了koa-router路由中

通过利用async函数,从而摈弃掉回调函数,并有力地增强错误处理,所以中间件必须是一个async函数,该回调函数共有两个参数:

  • ctx:ctx是context(上下文)的简写,是客户端请求对象和服务器响应对象的结合体,其中的一些方法或属性为请求对象或响应对象的别名
    • ctx.req:客户端请求对象
    • ctx.res:服务器响应对象
    • ctx.path:请求路径别名
    • ctx.method:请求方法别名
    • ctx.query:请求查询字符串对象
    • ctx.body:返回的内容主题,可以是字符串,可以是对象格式(会自动转化为json)
  • next:默认情况下中间件依次向下匹配,一旦匹配成功就终止匹配
    • 若再调用next()方法就会接着向下匹配
    • 若在使用await next()方法就会先向下匹配,终止匹配后在回来,也就是洋葱圈模型
加油啊!即便没有转生到异世界,也要拿出真本事!!!\(`Δ’)/
最后更新于 2026-02-01