-
中间件
在访问路由前或访问路由后做的一系列处理
express应用可使用如下几种中间件
1、应用级中间件
2、路由级中间件
3、错误处理中间件
4、内置中间件
5、第三方中间件
一、应用级中间件
// 应用级中间件(可以用于权限判断) app.use(function(req,res,next){// 匹配任何路由 // do some next();//表示匹配完成这个中间件之后 程序继续往下执行 })
二、路由级中间件 (比较少用)
正常情况下,比如先匹配到/news/add路由,就不会往下匹配了,如果执行next().就会继续往下匹配 /news/:id
app.get("/news/add",(req,res,next) => {//这个是 /news/:id 路由的路由级中间件 console.log("匹配到news/add"); // do some next() }) app.get("/news/:id",(req,res) => { console.log(req.params.id); })
三、错误处理中间件
// 错误处理中间件 app.use((req,res,next) => { res.status(404).send("404");//返回状态404 并向页面返回404 })
四、内置中间件
app.use("express.static("./static")) //匹配所有的路径 app.use("./news",express.static("./static")) //匹配所有的路径
五、第三方中间件
拿body-parser来举例 获取post传值 npmjs.com 搜索body-parser
/** * 获取post传来的数据 * 1、cnpm install body-parser --save * 2、var bodyParser = require("body-parser") * 3、配置中间件 * //parse application/x-www-form-urlencoded app.use(bodyParser.urlencoded({ extended: false })) //parse application/json app.use(bodyParser.json()) 4、接收post数据 req.body */ const express = require("express"); const app = express(); const bodyParser = require("body-parser") // 配置body-parser中间件 // parse application/x-www-form-urlencoded 解析form表单数据 app.use(bodyParser.urlencoded({ extended: false })) // parse application/json 解析json数据 app.use(bodyParser.json()) app.get("/login",(req,res) => { // req.query 获取get传值 res.render("login",{}) }) app.post("/doLogin",(req,res) => { // req.body 获取post传值 console.log(req.body); res.send("执行提交") }) app.listen(3000)
-