请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

老师中间件有点不理解老师中间件有点不理解老师中间件有点不理解

正在回答 回答被采纳积分+3

1回答

one_pieces 2023-01-05 13:42:27

其实中间件的概念现在挺宽泛的。在很久以前,或者说狭义上的中间件,是指介于操作系统和业务应用程序之间,利用操作系统的能力,为一个或多个应用提供基础服务的软件,比如 mysql、redis、消息队列。所以你会看到网上很多资料是这么介绍中间件的定义的。但随着技术的发展,中间件的概念也在不断变化,界限也变得越来越模糊。现在我们平时说的中间件,已经是广义上的中间件,就是为业务应用服务的处在中间层的底层库或软件,它不直接服务应用的用户。除了上面提到的mysql存储软件、网络库、监控组件这些偏向底层的技术中间件外,还有比如数据搜索组件,推荐组件,这些从大量业务中抽取出的公共功能,我们也会称它们为中间件。可以看到不论是狭义还是广义,中间件都是处在执行的中间过程,去处理一些共性逻辑。从这个“中间过程”的概念引申到其它领域,比如前端,你会看到前端的一些框架也提到一些中间件概念。本质上其实指的也是这个“在中间过程去处理共性逻辑”的意思。

那么回到我们课程的例子,也是类似的,这里的中间件指的是一个 http 请求在处理过程中的“中间步骤”。我们可以把一个 http 的处理想象成一个流水线,增加一个中间件相当于增加一个中间步骤,这个“中间步骤”可以拿到当前请求对象 req,响应对象 res 和下一个中间件函数 next。在中间步骤去处理自定义的逻辑,比如路由,鉴权,错误处理等等。处理完可以调用 res 的方法去返回数据,结束处理流程,也可以调用 next(),执行后续的中间件。这样既做到逻辑复用,也做到插拔式的流程控制。

以上就是老师对中间件的一些看法。如果同学还有问题的话,可以继续留言或者到问答群里提问哈~

0 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信