express中间件及body-parser第三方中间件获取post传值

-

中间件

在访问路由前或访问路由后做的一系列处理

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)

 

 

 

 

 

-

posted @ 2021-09-05 18:54  古墩古墩  Views(158)  Comments(0Edit  收藏  举报