开发者社区 > 云原生 > 中间件 > 正文

如何使用Koa 中间件?

如何使用Koa 中间件?

展开
收起
1358896759097293 2021-03-11 23:06:41 998 0
1 条回答
写回答
取消 提交回答
  • 45271990@qq.com

    导出的 APP 会在后台运行应用时被 require。Koa 的中间件把自己定义为普通的 function,然后每一个部分都有它自己的 function,把这些 function 组合到一起,接连运 行下去,这是 Koa 对中间件的定义。Koa 中间件是它自己定义的一个扩展方法。Koa 遵循 的设计模式是跟 Ruby on rails 比较像的,它遵循的原则叫约定大于配置。Koa 中间件做 的约定是一个函数,它有两个参数,一个 ctx 一个 next,然后这样子的一个函数可以作为 一个中间件来使用。 由于 Koa 比较流行,所以在 Node 里一般讨论中间件就是指 Koa 中间件。你也可以 自己写一个你觉得更好的中间件模型,如果你做的框架流行起来,那么中间件的标准就会变 成你的。然后我们在云上跑跟在本地跑区别是差不多的。 (演示)比如说我写一个 body=hi,然后再写一个,我在上面写一个 body=hi,这个 约定大于配置是说函数本身的,现在我们开始讨论中间件到底是什么东西,然后我把 ctx. body 加等于相当于一个 Alan,这里就有两个函数,这两个函数都被 Koa 给使用了。

    这里的加号写成了等号,这两个函数就都被使用了。这两个函数被组合使用,它一开始 是 body 上是一个 hi,然后在第二个函数被使用的时候,这个 body 就变成了一个 hi 加上 Alan。这是一个很简单的把这两个函数组合起来的一个例子。 我们刚刚说了它有一个约定,就是有两个参数一个 ctx 一个 next,要调 next,它才会 帮你去调下一个函数。 我们尝试调一下,hi Alan 就出来了。然后 ctx 和 next 这两个参数是 Koa 给你约定 的,然后这个 next 是指向下一个函数,那么一个函数套下一个函数,然后再继续套下一个 函数,就会发现我们可以很自由的在一个函数从一个 Path。换句话说,比如说我们要实现 一个 user register 用户注册一个 API 的时候,在注册之前,我们可以在这个函数数组上 面的中间任意一个位置加上一个新的逻辑去过滤进来的请求。 (演示)比如说加一个安全的函数,就会发现所写的函数不管在这中间的任何地方,它 其实都处于逻辑中间,所以 Koa 的作者把这种函数叫做中间件。这个顺序的话,谁先被它 use 就谁先出现在这个数组里面,但是你也可以把 APP 上面的数组强行拉出来,然后塞到 中间任意一个位置,去做逻辑的处理。 当你去写函数的时候,你会发现这个函数可以很轻易的在你的整个逻辑链路的任何位置 去做一个扩展,所以它扩展的时候,它就好像一个中间的东西,所以就把这个东西命名成了 一个 middleware,是吧?它并不是一个什么 software,也不是一个 hardware,它是一 个 middleware。它可以根据业务模块着层处理,而且你可以把一些逻辑单独用一个函数抽 出来,然后去复用,在某些需要使用这个逻辑的路由上面,你再去挂这样一个函数。 总结一下,当我们从本地的 Koa 应用迁移到云上的一个很大的区别,是云上的一个应 用需要把 APP 导出来,然后在云开发平台去把 Node 的进程提起来,完成测试预览,再 输入你的端口,然后去访问这个端口,才能去预览 Koa 应用。

    2021-03-14 22:42:11
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:

为企业提供高效、稳定、易扩展的中间件产品。

相关电子书

更多
金融分布式中间件分享 立即下载
无需部署的前端中间件技术——企业移动化新思路 立即下载
《云原生中间件精品案例集》 立即下载