简单说,中间件(middleware)就是处理HTTP请求的函数,用来完成各种特定的任务,比如检查用户是否登录、分析数据、以及其他在需要最终将数据发送给用户之前完成的任务。它最大的特点就是,一个中间件处理完,再传递给下一个中间件。
node.js的内置模块http的createServer方法,可以生成一个服务器实例,该实例允许在运行过程中,调用一系列函数(也就是中间件)。当一个HTTP请求进入服务器,服务器实例会调用第一个中间件,完成后根据设置,决定是否再调用下一个中间件。中间件内部可以使用服务器实例的response对象(ServerResponse,即回调函数的第二个参数),以及一个next回调函数(即第三个参数)。每个中间件都可以对HTTP请求(request对象)做出回应,并且决定是否调用next方法,将request对象再传给下一个中间件。
一个不进行任何操作、只传递request对象的中间件,大概是下面这样:
~~~
function uselessMiddleware(req, res, next) {
next();
}
~~~
上面代码的next为中间件的回调函数。如果它带有参数,则代表抛出一个错误,参数为错误文本。
~~~
function uselessMiddleware(req, res, next) {
next('出错了!');
}
~~~
抛出错误以后,后面的中间件将不再执行,直到发现一个错误处理函数为止。
- 1. 概述
- 1.1 搭建HTTPs服务器
- 2. 运行原理
- 2.1 底层:http模块
- 2.2 对http模块的再包装
- 2.3 什么是中间件
- 2.4 use方法
- 3. Express的方法
- 3.1 all方法和HTTP动词方法
- 3.2 set方法
- 3.3 response对象
- 3.4 requst对象
- 4. 项目开发实例
- 4.1 编写启动脚本
- 4.2 配置路由
- 4.3 静态网页模板
- 5. 动态网页模板
- 5.1 安装模板引擎
- 5.2 新建数据脚本
- 5.3 新建网页模板
- 5.4 渲染模板
- 5.5 指定静态文件目录
- 6. ExpressJS 4.0的Router用法
- 6.1 基本用法
- 6.2 router.route方法
- 6.3 router中间件
- 6.4 对路径参数的处理
- 7. 上传文件
- 8. 参考链接