express中介軟體及body-parser第三方中介軟體獲取post傳值
阿新 • • 發佈:2021-09-05
-
中介軟體
在訪問路由前或訪問路由後做的一系列處理
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)
-