//中间件:先访问app的中间件的执行顺序类似嵌套函数,由外到内,再由内到外 //应用级中间件 const koa = require(‘koa‘); var router = require(‘koa-router‘)(); var app = new koa(); //匹配任意路由之前打印日期 app.use(async (ctx,next)=>{ console.log(new Date()); await next(); }); router.get(‘/‘,async (ctx)=>{ ctx.body = ‘首页‘; }); //路由级中间件 //匹配到news后继续向下匹配路由 router.get(‘/news‘,async (ctx,next)=>{ console.log(‘这是一个新闻‘); await next(); }); router.get(‘/news‘,async (ctx)=>{ ctx.body = ‘这是一个新闻‘; }); //错误处理中间件 app.use(async (ctx,next)=>{ console.log(‘这是一个中间件01‘); next();//先处理中间节 if(ctx.status == 404){ ctx.status = 404; ctyx.body = ‘这是一个404页面‘; }else{ console.log(ctx.url); } }); app.use(router.routes()); app.use(router.allowedMethods()); app.listen(3000);
原文地址:https://www.cnblogs.com/Liqian-Front-End-Engineer/p/11776191.html
时间: 2024-11-09 13:40:59