美文网首页
Node.js KOA 中间件(筛选、登录权限等功能)

Node.js KOA 中间件(筛选、登录权限等功能)

作者: 天往哪方 | 来源:发表于2020-07-20 14:16 被阅读0次

    应用级中间件

    var Koa = require("koa")
    var router = require("koa-router")()
    
    
    
    /**
     *
     * 应用级别中间件
     *
     */
    app.use(async (context, next) => {
        console.log(new Date());
        next();
    });
    
    app
        .use(router.routes())
        .use(router.allowedMethods())
    
    app.listen(8080)
    

    路由级中间件

    var Koa = require("koa")
    var router = require("koa-router")()
    
    
    
    /**
     *
     * 路由级中间件
     */
    router.get('/news', async (ctx,next) => {
        console.log("中间件调用了");
        await next();
    })
    
    router.get('/news', async (ctx) => {
        console.log("方法被调用了");
        ctx.body = "这是新闻页面"
    })
    
    app
        .use(router.routes())
        .use(router.allowedMethods())
    
    app.listen(8080)
    

    错误处理中间件

    var Koa = require("koa")
    var router = require("koa-router")()
    
    
    
    app.use(async (ctx,next)=>{
        console.log('中间件方法被调用');
    
        await next()  //向线下执行
    
    /*
    执行后返回的结果如果有问题 可以在后面直接捕获并处理异常
    */
        if (ctx.status === 404){
            ctx.status = 404;
            ctx.body  = "这是一个404页面"
        }else{
            console.log(ctx.url);
        }
    })
    
    router.get('/news', async (ctx) => {
        console.log("方法被调用了");
        ctx.body = "这是新闻页面"
    })
    
    app
        .use(router.routes())
        .use(router.allowedMethods())
    
    app.listen(8080)
    

    注意:如果需要在next()方法之后做一些操作,需要在next之前加上await 因为next也是异步执行的,需要等下一步的方法执行之后才能进行下一步操作

    相关文章

      网友评论

          本文标题:Node.js KOA 中间件(筛选、登录权限等功能)

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