1. 程式人生 > 其它 >express中介軟體及body-parser第三方中介軟體獲取post傳值

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)

-