1、req.body
2、req.query
3、req.params
一、req.body例子
body不是nodejs默認提供的,你需要載入body-parser中間件才可以使用req.body,這個方法通常用來解析POST請求中的數據
<form action='/test' method='post'> <input type='text' name='name' value='lmw'> <input type='text' name='tel' value='1234567'> <input type='submit' value='Submit'> </form> app.post('/test', function(req, res) { console.log(req.body.name); console.log(req.body.tel); });
二、req.query例子
有nodejs默認提供,無需載入中間件,這個方法通常用來解析get請求中的數據
GET /test?name=lmw&tel=123456789 app.get('/test', function(req, res) { console.log(req.query.name); console.log(req.query.tel); });
三、req.query和req.body同時使有
<form action='/test?id=1' method='post'> <input type='text' name='name' value='lmw'> <input type='text' name='tel' value='123456789'> <input type='submit' value='Submit'> </form> app.post('/test', function(req, res) { console.log(req.query.id); console.log(req.body.name); console.log(req.body.tel); });
四、req.params
另一種方法傳遞參數給服務器,但是這不算是傳統標准規范的做法,是屬於 HTTP Routing 的延伸應用
GET /test/lmw/123456789 app.get('/test/:name/:tel', function(req, res) { console.log(req.params.name); console.log(req.params.tel); });
總結:
req.query
: 解析后的 url 中的 querystring,如?name=haha
,req.query 的值為{name: 'haha'}
req.params
: 解析 url 中的占位符,如/:name
,訪問 /haha,req.params 的值為{name: 'haha'}
req.body
: 解析后請求體,需使用相關的模塊,如 body-parser,請求體為{"name": "haha"}
,則 req.body 為{name: 'haha'}
歡迎加入大前端交流群!群號:277942610,VIP新群