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

应用级中间件

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也是异步执行的,需要等下一步的方法执行之后才能进行下一步操作

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容