koa2 中间件的洋葱模型

使用脚手架koa-generator 创建koa2项目:

全局安装koa-generator

npm install -g koa-generator

创建项目:

koa2 test2

进入test2文件夹
然后运行npm install

koa2 与nodejs代码对比

  • koa2封装原生代码的API
  • 规范流程和格式

洋葱模型
中间件

例子

// 演示 koa2 中间件的洋葱模型
const Koa = require('koa')
const app = new Koa()

//logger
app.use(async (ctx, next) => {
    await next();   // 执行下一个中间件
    const rt = ctx.response.get('X-Response-Time')  // 获取 时间差
    console.log(`${ctx.method} ${ctx.url} - ${rt}`);
})

// x-response-time
app.use(async (ctx, next) => {
    const start = Date.now();
    await next(); // 执行下一个中间件
    const ms = Date.now() - start;  // 计算时间差 例如 80
    ctx.set('X-Response-Time', `${ms}ms`); // 记录/设置  时间差
})

// response
app.use(async (ctx, next) => {
    ctx.body = 'Hello world';
})

app.listen(3000);
console.log('koa2 已经开始监听 3000 端口');

中间件就是一个流程中的各个业务模块,可扩展
koa2中使用了哪些中间件(app.js)

持续更新中......

砥砺前行
原文地址:https://www.cnblogs.com/lhongsen/p/14718940.html