koa中间件

作者: 阿布ccc | 来源:发表于2019-08-01 12:04 被阅读11次

什么叫中间件

在Koa中,中间件是指连贯整个 Koa 应用程序,并共享资源(上下文)的独立插件。
这里注意两个词:连贯共享资源

  • 连贯 对应“next”
  • 共享资源 对应"context”。
中间件(middlewares)

如图,是一个基本的web服务器的模型,服务器接受一个浏览器的request请求,然后返回一个response,一个个小箭头指的就是中间件。为什么要画成洋葱这么一个形态,是因为不管是接收请求还是返回结果,都要经过中间件,所以中间件是一个环形的,只不过,进去和出来的过程经过的中间件顺序是相反的。

中间件的执行顺序

如图,我们自定义三个中间件,每个中间件都在进入和离开的时候输出一串代码。


image.png

其中每个中间件的代码如下:

function m1(ctx,next){
    // console.log('m1',ctx.path);
}

module.exports = function(){
    return async function(ctx,next){
        console.log('m1 start')
        m1(ctx)
        await next();
        console.log('m1 end')
    }
}

m1,m2,m3中间件的主要区别在于console.log(m2 start),console.log('m2 end')
我们按照如下顺序在app.js引入并使用3个中间件:

image.png
刷新页面,我们可以在命令行中看到如下输出:
image.png
可以看出,中间件的执行顺序是标准的堆栈(先进后出)模型。

中间件的执行顺序和中间件的引用顺序没有关系,和app.use()的顺序有关

相关文章

  • koa系列(三)

    文章内容:koa 中间件 以及 koa 中间件的执行流程。 一、什么是 Koa 的中间件 中间件就是匹配路由之前或...

  • 知识点总结

    Koa2中间件 koa(面向node.js的表达式HTTP中间件框架)、koa-router(路由中间件)、koa...

  • 8KOA 静态文件

    静态文件 使用 koa-static 中间件实现静态文件访问 安装中间件 使用中间件 使用 koa-mount 自...

  • koa

    koa 学习 中间件 koa-router koa-router 获取get/post请求参数 koa-bodyp...

  • koa.js的使用(koa2)

    koa与Express简单比较Express connect 中间件 封装了 路由、视图,koa co中间件 不包...

  • koa 常用模块

    koa-router koa路由中间件https://github.com/alexmingoia/koa-rou...

  • koa 中间件机制以及异常捕获

    koa 中间件机制以及异常捕获 koa 中间件机制解析 koa 的请求处理是典型的洋葱模型,下面是官方的配图,而这...

  • koa洋葱模型

    koa-compose:koa-compose则是将 koa/koa-router 各个中间件合并执行,结合 ne...

  • Koa项目总结四:Koa静态资源的配置

    使用koa-static中间件来处理Koa项目中的静态资源。 1.1 koa-static安装: 1.2 koa-...

  • 【koa2】koa-static-router 中间件搭建静态资

    koa中间件 koa-static-router中间件搭建静态资源服务器, 实现多个&&多层路由加载静态资源 源码...

网友评论

    本文标题:koa中间件

    本文链接:https://www.haomeiwen.com/subject/bffdcctx.html