koa-middleware

1、应用级中间件

var Koa = require(koa)
var router = require(koa-router)()
var app = new Koa()

//Koa中间件
//两个参数则第一个表示匹配对应的路由,第二个参数为async;只有一个参数表示匹配所有路由。
app.use(async (ctx)=>{
    ctx.body = 这是一个中间件
})
app.use(async (ctx, next)=>{
    console.log(new Date())
    await next()     //当前路由匹配完成后继续向下匹配
    //匹配任何路由,如果不写next,这个路由被匹配到了就不会继续向下匹配
})


app
    .use(router.routes())  //启动路由
    .use(router.allowedMethods()) 

app.listen(3000)

2、路由级中间件

var Koa = require(koa)
var router = require(koa-router)()
var app = new Koa()


router.get(/, async (ctx)=>{
    ctx.body = 首页
})
// router.get(‘/news‘, async (ctx)=>{
//     console.log(‘这是一个新闻‘)   //匹配到一个路由若没有响应则会出错
// })
router.get(/news, async (ctx, next)=>{
    console.log(这是一个新闻)
    await next()
})
router.get(/news, async (ctx)=>{
    ctx.body = 新闻页面
})


app
    .use(router.routes())  //启动路由
    .use(router.allowedMethods()) 

app.listen(3000)

3、错误处理级中间件

var Koa = require(koa)
var router = require(koa-router)()
var app = new Koa()


router.get(/, async (ctx)=>{
    ctx.body = 首页
})

router.get(/news, async (ctx, next)=>{
    console.log(这是一个新闻)
    await next()
})
router.get(/news, async (ctx)=>{
    ctx.body = 新闻页面
})

//无论放在哪儿,都先执行这个,然后再执行next匹配下一个路由
//www.域名.com/xxx匹配不到,则返回到此执行if语句
//无论如何都会最后都会返回执行if
//洋葱模型
app.use(async (ctx, next)=>{  
    console.log(这是一个中间件01)  
    next()
    
    if(ctx.status == 404){
        ctx.status = 404
        ctx.body = 这是一个404页面
    }
})


app
    .use(router.routes())  //启动路由
    .use(router.allowedMethods()) 

app.listen(3000)

 

koa-middleware

上一篇:搭建java web开发环境、使用eclipse编写第一个java web程序


下一篇:Docker之配置阿里云镜像加速