美文网首页
koa的中间件

koa的中间件

作者: HonneyHao | 来源:发表于2019-02-02 14:17 被阅读0次

中间件就是匹配路由(匹配任何路由或者特定的路由,其作用比如打印日志,查看权限)之前或者匹配路由完成之后所得一系列操作,功能有:
1.执行任何代码
2.修改请求和和响应对象
3.终结请求-响应循环
4.调用堆栈中的下一个中间件
通过next来实现

1.应用级中间件:匹配路由之前所做的一系列操作

//中间件(中间件要放在use(route)之前):
//例如:一个匹配任何路由,打印时间的中间件
app.use(async (ctx,next)=>{
  console.log(new Date());
  await next()//当前路由匹配完成之后继续向下匹配,如果不写await next(),就会终止路由
})

2.路由级中间件:由于这个中间件只对这一个路由有作用,而不是对整个应用的路由都有作用,所以叫做路由级中间件

上面的这一段就是路由zjj的路由级中间件
router.get('/zjj', async (ctx, next) => {
  console.log("zjj");
  await next()//不写的话就不会继续向下匹配,也就是拿不到ctx.body
})
router.get('/zjj', async (ctx, next) => {
  ctx.body = '中间件'
})

3.错误处理中间件,例如:

app.use(async (ctx,next)=>{
  if(ctx.status==404){
    ctx.status=404;
    ctx.body="404页面"
  }
})

4.中间件的执行顺序:

app.use(async (ctx,next)=>{
  console.log("1");
  await next();
  console.log("3")
})
app.use(async (ctx,next)=>{
  console.log("2");
  await next()
  console.log("4")
})

打印结果是:1,2,3,4
显而易见:在匹配路由之前,要执行next()之前的代码,匹配之后,要执行next()之后的代码,类似于进入洋葱和从洋葱中心离开

5第三方中间件:如koa-bodyparser

相关文章

  • koa系列(三)

    文章内容:koa 中间件 以及 koa 中间件的执行流程。 一、什么是 Koa 的中间件 中间件就是匹配路由之前或...

  • 知识点总结

    Koa2中间件 koa(面向node.js的表达式HTTP中间件框架)、koa-router(路由中间件)、koa...

  • 8KOA 静态文件

    静态文件 使用 koa-static 中间件实现静态文件访问 安装中间件 使用中间件 使用 koa-mount 自...

  • koa

    koa 学习 中间件 koa-router koa-router 获取get/post请求参数 koa-bodyp...

  • koa 中间件机制以及异常捕获

    koa 中间件机制以及异常捕获 koa 中间件机制解析 koa 的请求处理是典型的洋葱模型,下面是官方的配图,而这...

  • koa.js的使用(koa2)

    koa与Express简单比较Express connect 中间件 封装了 路由、视图,koa co中间件 不包...

  • koa 常用模块

    koa-router koa路由中间件https://github.com/alexmingoia/koa-rou...

  • Koa项目总结四:Koa静态资源的配置

    使用koa-static中间件来处理Koa项目中的静态资源。 1.1 koa-static安装: 1.2 koa-...

  • koa洋葱模型

    koa-compose:koa-compose则是将 koa/koa-router 各个中间件合并执行,结合 ne...

  • koa中间件原理

    之前有写过koa中间件的简单使用,简单回顾下: 运行: 以上就是koa中间件的使用,可以看出中间件的执行时通过us...

网友评论

      本文标题:koa的中间件

      本文链接:https://www.haomeiwen.com/subject/gmrssqtx.html