koa中间件(应用级中间件、路由中间件、错误处理中间件、第三方中间件)

koa中的中间件无论在哪里,都先执行,与代码前后顺序无关

举例:

应用级中间件:
    app.use(async (ctx,next) => {
      console.log(new Data());
      await next();    //当前路由匹配完成以后继续向下匹配
    })
    router.get('/',async (ctx) => {    //2018-11-29 14:36:07
      ctx.body="首页";
    })
    router.get('/news',async (ctx) => {    //2018-11-29 14:37:01
      ctx.body="新闻页";
    })

路由中间件:
    router.get('/',async (ctx,next) => { 
      console.log('这是主页1');
      await next();
    })
    router.get('/',async (ctx) => {
      ctx.body="这是主页";
    })

错误处理中间件:

  访问http://www.xxx.com/news     输出新闻页
  访问http://www.xxx.com/xxx      输出这是一个404页面

  app.use(async (ctx,next) => {
    console.log('这是一个中间件');
    next();
    if(ctx.status == 404){
      ctx.status = 404;
      ctx.body="这是一个404页面";
    }else{
      console.log(ctx.url);
    }
  })  

  router.get('/',async (ctx) => {    //2018-11-29 14:36:07
    ctx.body="首页";
  })
  router.get('/news',async (ctx) => {    //2018-11-29 14:37:01
    ctx.body="新闻页";
  })
  当访问http://www.xxx.com/xxx时,会经过中间件控制台打印出‘这是一个中间件’,
  然后到路由中间件去匹配‘/xxx’,这时因为找不到这个路由会返回中间件继续向下执行,
  输出‘这是一个404页面’
  
第三方中间件

  指的就是koa-session、koa-jwt等
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值