Express 中间件原理,就这?

开发 前端
在使用中间件函数的时候,有两个地方我们需要注意:一个是 app.use() 添加一个中间件函数,一个是回调函数中的 next() 这种特有的标志,它的意思很简单就是代表下一个中间件函数执行。

[[394897]]

今天在搞 express 的时候,用到了中间件函数。至于它的概念和使用技巧,我们就不提了。我只是对这个中间件函数内部的结构很感兴趣。所以今天就和大家一起聊聊这个中间件函数的原理。

使用技巧

在使用中间件函数的时候,有两个地方我们需要注意:一个是 app.use() 添加一个中间件函数,一个是回调函数中的 next() 这种特有的标志,它的意思很简单就是代表下一个中间件函数执行。

思路分析

通过使用之后,我们大致能明白,内部有个存放中间件函数的东西,并且这是个数组。所以我们就简单实现一下这个过程。

在 express 中都是通过 callback 回调函数去执行中间件函数,我们这里就简单模拟一个 compose 函数,实现所有中间件函数的调用。

fnmiddle() 执行就是调用 compose 的返回函数,它里面要对 middleware 数组中的所有函数处理,在这个返回函数内,我们使用递归的方式来实现一下这个流程。

这样一个中间件函数的大致原理就出来了,整体理解起来还是比较简单的,不过中间件思想在 web 的覆盖范围还是很广的,你能列举出来并写出大致的思路吗.

 

责任编辑:姜华 来源: 勾勾的前端世界
相关推荐

2021-08-10 14:10:02

Nodejs后端开发

2020-11-06 09:24:09

node

2011-05-24 15:10:48

2021-02-11 08:21:02

中间件开发CRUD

2016-11-11 21:00:46

中间件

2018-07-29 12:27:30

云中间件云计算API

2018-02-01 10:19:22

中间件服务器系统

2021-07-19 07:55:24

Redux中间件原理

2023-06-29 10:10:06

Rocket MQ消息中间件

2012-11-30 10:21:46

移动中间件

2009-06-16 15:55:06

JBoss企业中间件

2023-10-24 07:50:18

消息中间件MQ

2011-10-24 07:41:38

SOA中间件应用服务器

2020-08-19 08:39:05

中间件前端设计模式

2009-06-16 10:53:01

JBoss中间件JBoss架构

2021-12-14 10:39:12

中间件ActiveMQRabbitMQ

2019-06-04 15:18:30

Web ServerNginx中间件

2015-02-07 21:52:45

PaaS中间件

2021-10-06 19:03:35

Go中间件Middleware

2010-12-14 07:50:37

OracleSolaris 11
点赞
收藏

51CTO技术栈公众号