1.错误处理中间件
app.js
/** * 错误处理中间件 */ // 引入模块 const Koa = require('koa'); const router = require('koa-router')(); /*引入是实例化路由 推荐*/ // 实例化 let app = new Koa(); // Koa中间件 // 匹配任何路由,如果不写next,这个路由被匹配到了就不会继续向下匹配 // www.域名.com/news app.use(async (ctx, next) => { console.log('这是一个中间件01'); next(); if(ctx.status == 404) { ctx.status = 404; ctx.body = '这是一个 404 页面'; } else { console.log(ctx.url); } }) router.get('/', async (ctx) => { ctx.body = '首页'; }) router.get('/news', async (ctx) => { ctx.body = '这是一个新闻2'; }) router.get('/login', async (ctx) => { ctx.body = '登录页面'; }) app.use(router.routes()); app.use(router.allowedMethods()); /** * router.allowedMethods() 作用:这是官方文档的推荐用法,我们可以 * 看到 router.allowedMethods() 用在了路由匹配 router.routes()之后, * 所以在当所有路由中间件最后调用,此时根据 ctx.status 设置 response 响应头 */ app.listen(3000);
.