koa(四)路由中间件

1.中间件

/**
 * 错误处理中间件
 */
// 引入模块
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);

你可能感兴趣的:(koa(四)路由中间件)