nodejs学习笔记18-koa洋葱模型

219 阅读1分钟

koa中间件的执行顺序

Koa 的中间件和 Express 不同,Koa 选择了洋葱圈模型。

image.png

app.js

const Koa = require('koa');
// const router = require("koa-router")(); // 引入和实例化路由 推荐
const Router = require("koa-router");

const app = new Koa();
const router = new Router();


app.use(async (ctx, next)=>{
  console.log("1、中间件1")
  await next();
  console.log("5、匹配完路由以后,又返回来执行中间件1")
})

app.use(async (ctx, next)=>{
  console.log("2、中间件2")
  await next();
  console.log("4、匹配完路由以后,又返回来执行中间件2")
})

// 配置路由
router.get('/', async(ctx)=>{
  ctx.body = '首页';
});

// 启动路由
app.use(router.routes()); // 启动路由   可以链式调用
app.use(router.allowedMethods()); // 可配磕不配

app.listen(8081);

image.png