中间件
Express 是一个自身功能极简,完全是由路由和中间件构成一个的 web 开发框架:从本质上来说,一个 Express 应用就是在调用各种中间件。
- 中间件是一个函数,可以访问求对象(request object (req)), 响应对象(response object (res)),和web应用中处于请求-响应循环流程中的中间件
- 中间件的功能包括:
- 修改请求和响应对象。
- 终结请求-响应循环。
- 调用堆栈中的下一个中间件。
- 如果当前中间件没有终结请求-响应循环,则必须调用 next() 方法将控制权交给下一个中间件,否则请求就会挂起。
应用级中间件
在app上使用use,post,get方法,就是应用级中间件,每个符合条件的http请求都会执行。符合条件,比如请求方式符合,比如挂载路径符合
// 看清楚,什么才是中间件~~~~~~
app.get('/user/:id', function (req, res, next) {
if (req.params.id == 0) next('route');
// 否则将控制权交给栈中下一个中间件
else next(); //
}, function (req, res, next) {
res.render('regular');
});
- 路由级中间件
- 内置中间件
- 在express中,如果某个请求没有被响应,显示Cant GET /a 或者其他
路由级中间件
- 使用express的router
- router的get,post中的函数就是中间件
- 也可以使用next方法
错误处理中间件
- 该函数有四个参数,err,req,res,next
- 参数不可省略
第三方中间件
Express 已经不再依赖 Connect 了。除了 express.static, Express 以前内置的中间件现在已经全部单独作为模块安装使用了。
// 先下载中间件
var express = require('express');
var app = express();
var cookieParser = require('cookie-parser');
// 加载用于解析 cookie 的中间件
app.use(cookieParser());
post和get请求
- post请求可能过长,分成data和end两个事件
- get方式的提交,也能触发post方法的end事件
网友评论