天天看点

深究node.js中express的中间件

express:是 一个框架,他是基于node.js平台的web应用开发框架;利用这个框架可以扩展web应用开发所需要的好多基础功能;

在官网上面是这样说的:

express是一个自身功能极简,完全是路由和中间件构成一个web开发框架:从本质上来说,一个Express应用就是在调用各种中间件。”

由此可见,中间件在Express开发中的重要性,因此这里我们就专门来总结一下中间件

下面咱们选说说中间件的结构:

1,app.use([path],function)

path:是路由的url,默认参数‘/’,意义是路由到这个路径时使用这个中间件

function:中间件函数

这个中间件函数可以理解为就是function(request,response,next)

中间件分为这几类:

1 内置中间件:

express.static 是Express目前唯一内置的一个中间件。用来处理静态资源文件

2 自定义中间件:

根据中间件的结构我们可以看出其是由路径以及function构成;对于自己定义的中间件来说,着重点就是这个function在这里function(req,res,next);当浏览器端的客户向服务器端发送一个请求时,那么node.js会 为这个请求创建一个request对象;然后根据用户提交 上来的数据同时创建一个response对象;此时,服务器 端就会把这个相应所对应的内容发送到前端;以供用户使用,而要想运行下一个中间件那么必须在 函数内部加上next;

3第三方中间件

body-parser :解析body中的数据,并将其保存为Request对象的body属性。

cookie-parser :解析客户端cookie中的数据,并将其保存为Request对象的cookie属性

express-session :解析服务端生成的sessionid对应的session数据,并将其保存为Request对象的session属性

query:这个中间件将一个查询字符串从URL转换为JS对象,并将其保存为Request对象的query属性。这个中间件在第四个版本中已经内置了无需安装。

到这里我们再回过头看看对中间件的深入了解:

浏览器向服务器发送一个请求后,服务器直接通过request.定位属性的方式得到通过request携带过去的数据(有用户输入的数据和浏览器本身的数据信息)。这中间就需要有一个函数将这些数据分类做了处理,已经处理好了,最后让request对象调用使用,对的,这个处理数据处理函数就是我们要说的 中间件 。由此可见,中间件可以总结以下几点:

1、封装了一些处理一个完整事件的功能函数。

2、非内置的中间件需要通过安装后,require到文件就可以运行。

3、封装了一些或许复杂但肯定是通用的功能