express是轻量灵活的node.js Web应用框架”。它可以帮助你快速搭建web应用。express是一个自身功能极简,完全是由**路由**和**中间件**构成的一个web开发框架,本质上说,一个express应用就是在调用各种中间件。什么是中间件呢?
一、中间件是什么?
中间件(MiddleWare)可以理解为一个对用户请求进行过滤和预处理的东西,它一般不会直接对客户端进行响应,而是将处理之后的结果传递下去。其实它就是相当于一个过滤器类似于javeEE中的`filter`。
其实,express中的中间件是使用了Connect中间件框架。(Connect是一个中间件框架它的作者与express的作者是同一个人)在3.0的版本中express是包含了Connect的中间件,而在最新的4.0版本中express不再依赖Connect,而且从内核中移除了除`express.static`外的所有内置中间件。也就是说现有的express是一个独立的路由和中间件web框架,express的版本升级不再受中间件更新的影响。如果你需要这些中间件需要显示的添加。步骤如下:
1、 安装模块:npm install --save <module-name>
2、 在应用中引入模块:require('module-name')
3、 按照文档的描述使用模块:app.use( ... )
更多中间件请查阅官方文档: [中间件](http://www.expressjs.com.cn/guide/migrating-4.html)
二、中间件分类
我们可以将根据中间件在整个http处理流程的位置将Connect中间件分为三大类方便记忆。
1、 **pre-request** 通常用来该项request的原始数据
2、 **request、response**大部分中间件都在这里,功能各异。
3、 post-response全局异常处理,改写response数据等