1. 路由

本章节主要讲解 路由及其模块化。

1.1 路由的概念

路由就是映射关系。请求方式和资源路径与处理函数中间的对应关系。所以路由分 3 部分组成,分别是请求的类型、请求的 URL 地址、和处理函数。

图示:

1.2 简单路由

express 中的简单路由书写形式为:

1.3 模块化路由(重点)

简单路由书写简单,使用方便,但是如果项目比较大,路由较多,难于处理和维护。所以为了处理和维护方便,express推荐我们讲相同模块中的路由抽离到一个文件中,示例:

导入路由模块,挂载路由:

2. 中间件

本章节主要讲解:中间件的概念和作用,中间件的格式,全局中间件和局部中间件,五类中间件;

2.1 中间件的概念和作用

中间件(Middleware ),特指业务流程的中间处理环节。当一个请求到达 Express 的服务器之后,可以连续调用多个中间件,从而对这次请求进行预处理。

使用中间件的作用就是处理请求。对一部分请求直接回复响应,对于另一部分请求,可以稍作处理后,交由后续逻辑继续处理。例如:静态资源开放中间件,POST参数处理中间件,身份认证中间件等。

2.2 中间件的格式

中间件,本质上就是一个 function 处理函数,Express 中间件的格式如下:

注意:中间件函数的形参列表中,必须包含 next 参数。而路由处理函数中只包含 req 和 res。

2.3 全局中间件和局部中间件

中间件分为全局中间件和局部中间件。全局中间件就是针对所有路由全部生效的中间件,局部中间件只针对某个路由起作用,其他的不受影响。

2.3.1 全局中间件

代码演示:

2.3.2 局部中间件

代码演示:

注意:中间件之间共享req和res对象。前面的中间件,向 req 和 res 对象上绑定的属性和方法,后面的中间件和路由中可以自由获取并使用这些属性和方法;(上面案例中的 req.time 就是示例)

2.3.1 使用注意事项

2.4 五类中间件

为了方便大家理解和记忆中间件的使用,Express 官方把常见的中间件用法,分成了 5 大类,分别是:

① 应用级别的中间件

② 路由级别的中间件

③ 错误级别的中间件

④ Express 内置的中间件

⑤ 第三方的中间件

2.4.1 应用级别的中间件(了解)

由开发人员自己定义的中间件,有具体的功能需求,视具体需求而定:

2.4.2 路由级别的中间件

简单路由以及模块化路由都属于路由基本中间件,代码略。

2.4.3 错误级别的中间件

用于错误处理的中间件。

2.4.4 Express 内置的中间件

express内置的中间件,express.static(),express.json(),express.urlencoded({extended: false})等。

2.4.5 第三方的中间件

由开发人员自己定义的中间件,有具体的功能需求,视具体需求而定:

3.自定义中间件

类似应用基本的中间件,但是经过模块化封装后,可以复用。

使用自定义中间件: