Express請求處理之POST引數的獲取
阿新 • • 發佈:2021-01-16
POST引數的獲取
Express 中接收POST請求引數需要藉助第三方包 body-parser
//引入body-parser模組
const bodyParser = require('body-parser');
//配置body-parser模組
app.use(bodyParser.urlencoded({ extended: false}));
//接受請求
app.post('/add',(req, res) =>{
//接受請求引數
console.log(req.body);
})
通過require方法將body-parser模組 引入到專案當中。
body-parser返回一個模組物件使用body-parser變數去接收。
並且將請求引數作為值賦值給req.body這個屬性,在方法內部呼叫next方法,將請求控制權交給下一個中介軟體。接下來在路由中通過req.body屬性拿到這個請求引數,在上面的程式碼當中當客戶端以post請求方式請求/add路由的時候,通過req.body屬性獲取了POST請求引數。
在urlencoded中傳遞了extended這個引數,extended本身有擴充套件的意思,當這個引數的值為false時,在方法內部會使用queryString這個系統模組對引數 的格式進行處理。當引數的值為true時使用一個qs的第三方模組對請求引數進行處理,qs模組也可以將請求引數的格式轉換為物件型別。而且功能上要比nodejs系統模組queryString更加強大。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<form action = "http://localhost:3000/add" method = "post">
<input type="text" name = "username">
<input type="password" name = "password">
<input type="submit" name = "">
</ form>
</body>
</html>
// 引入express框架
const express = require('express');
const bodyParser = require('body-parser');
// 建立網站伺服器
const app = express();
// 攔截所有請求
// extended:false 方法內部使用querystring模組處理請求引數的格式
// extended:true 方法內部使用第三方模組qs模組請求引數的格式
app.use(bodyParser.urlencoded({extend:false}))
app.post('/add',(req,res) =>{
// 接受post請求引數
res.send(req.body)
})
app.listen(3000);
console.log("網站伺服器啟動成功");