|
本帖最后由 周大胖子 于 2018-5-9 10:35 编辑
重点:KOA的中间键 执行的顺序是洋葱顺序, 由外到内 再 由内到外;express 则是一条直线撸下去。
【举个简单的说明: KOA 中间件app.use 写在路由下面 也会先执行app.use; 但是 express 中间件只能写在路由之前。】
KOA中间件的种类: 【和express一样 四种】
1.应用类中间件;
2.路由类中间件;- // 应用级中间件
- app.use(async (ctx,next)=>{
- console.log('1.这是第一个应用级中间件');
- await next();
- // 这里验证顺序
- console.log('3.执行顺序应该是 123')
- })
- //路由中间件
- router.get('/news',async (ctx,next)=>{
- ctx.body='这尼玛是新闻列表页 console.log('2.这是news的路由中间件')
- await next();
- })
复制代码 3.错误处理中间件;- // 错误处理中间件
- app.use(async (ctx,next)=>{
- await next();
- if(ctx.status==404){
- ctx.status = 404 ;
- ctx.body = '这是一个404页 }
- })
复制代码 4.第三方中间件;[这个 同 express 中的 static 或者 ejs模板插件]- const static = require('koa-static');
- const staticPatc = './staticapp.use(static(
- path.join(_dirname,staticPath)
- ))
- const bodyParser = require('koa-bodyparser');
- app.use(bodyParser());
复制代码
|
|