Express之get,pos請求參數的獲取


Express的版本4.X

Get


query參數的獲取

url假設:http://localhost:3000/users/zqzjs?name=zhaoqize&word=cool&job[st]=web

路由的定義:

router.get('/:name', function(req, res, next) {

})

1.獲取?name=zhaoqize這樣的參數

req.query.name

2.獲取&job[st]=web這樣的參數

req.query.job.st

3.獲取?name=zhaoqize參數的另外一種寫法(4.x版本中該方法已被廢棄)

req.param('name')

4.獲取所有參數

JSON.stringify(req.query)

具體代碼:

//http://localhost:3000/users/zqzjs?name=zhaoqize&word=cool&job[st]=web
//http://localhost:3000/users/zqzjs
router.get('/:name', function(req, res, next) {
  //4.版本中已被廢棄,不建議使用
  req.param('name')
  console.log(JSON.stringify(req.query) || '')
  //獲取get請求參數
  var _html = "Params"+
  		      "<p><strong>req.params:</strong>"+(JSON.stringify(req.params) || '')+"</p>" +
  		      "<p><strong>req.params.name:</strong>"+(req.params.name || '')+"</p>" +
  			  "Query:" +
  			  "<p><strong>req.query:</strong>"+(JSON.stringify(req.query) || '')+"</p>" +
  			  "<p><strong>req.query.name:</strong>"+(req.query.name || '')+"</p>" +
  			  "<p><strong>req.query.word:</strong>"+(req.query.word || '')+"</p>"+
  			  "<p><strong>req.query.job.st:</strong>"+(req.query.job.st || '')+"</p>" +
  			  "<p><strong>req.param('name'):</strong>"+(req.param('name') || '')+"</p>" ;
  			  

  res.send(_html);
});

結果:

[Get]
Params
req.params:{"name":"zqzjs"}

req.params.name:zqzjs

Query:
req.query:{"name":"zhaoqize","word":"cool","job":{"st":"web"}}

req.query.name:zhaoqize

req.query.word:cool

req.query.job.st:web

req.param('name'):zqzjs

Post


post的數據獲取

Form Data 
 pName:zqz
 pWord:job

1.獲取需要的query參數

req.body.pName

具體代碼:

router.post('/postTest',function(req, res, next){
	var _html = "[Post]" +
			    "<p><strong>req.body:</strong>"+(JSON.stringify(req.body) || '')+"</p>" +
			    "<p><strong>req.body.name:</strong>"+(req.body.pName || '')+"</p>" +
				"<p><strong>req.body.name:</strong>"+(req.body.pWord || '')+"</p>";
	res.send(_html);
})

結果:

[Post]
req.body:{"pName":"zqz","pWord":"job"}

req.body.name:zqz

req.body.name:job

其他信息


獲取請求的頭信息

使用:req.header(field)

//http://localhost:3000/users/requestInfo/get
router.get('/requestInfo/get',function(req, res, next){
	var _html = "";
	_html += "[Accept] "+req.header('Accept')+"<br/>"
	_html += "[Accept-Encoding] "+req.header('Accept-Encoding')+"<br/>"
	_html += "[Accept-Language] "+req.header('Accept-Language')+"<br/>"
	_html += "[Cache-Control] "+req.header('Cache-Control')+"<br/>"
	_html += "[Connection] "+req.header('Connection')+"<br/>"
	_html += "[Cookie] "+req.header('Cookie')+"<br/>"
	_html += "[Host] "+req.header('Host')+"<br/>"
	_html += "[If-None-Match] "+req.header('If-None-Match')+"<br/>"
	_html += "[Upgrade-Insecure-Requests] "+req.header('Upgrade-Insecure-Requests')+"<br/>"
	_html += "[User-Agent] "+req.header('User-Agent')+"<br/>"
	res.send(_html);
})

//結果:
[Accept] text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
[Accept-Encoding] gzip, deflate, sdch, br
[Accept-Language] zh-CN,zh;q=0.8,en-US;q=0.6,en;q=0.4,ja;q=0.2
[Cache-Control] max-age=0
[Connection] keep-alive
[Cookie] Hm_lvt_4f16d955a2236fc6ca7287644ecc9d79=1480576847,1481166685
[Host] localhost:3000
[If-None-Match] W/"23b-OjTNcZfCLTvw659CYGlLrA"
[Upgrade-Insecure-Requests] 1
[User-Agent] Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36

route

使用:req.route

//http://localhost:3000/users/router/get
router.get('/router/get',function(req, res, next){
	res.send(req.route);
})

//結果:

{
path: "/router/get",
stack: [
{
name: "<anonymous>",
keys: [ ],
regexp: { },
method: "get"
}
],
methods: {
get: true
}
}

cookies

使用:req.cookies

//http://localhost:3000/users/cookies/get
router.get('/cookies/get',function(req, res, next){
	res.send(req.cookies);
})

//結果:
{
Hm_lvt_4f16d955a2236fc6ca7287644ecc9d79: "1480576847,1481166685"
}

hostname

使用:req.hostname

//http://localhost:3000/users/hostname/get
router.get('/hostname/get',function(req, res, next){
	res.send(req.hostname);
})

//結果:
localhost

ip

使用:req.ip

//http://localhost:3000/users/ip/get
router.get('/ip/get',function(req, res, next){
	res.send(req.ip);
})

//結果:
::1

originalUrl

使用:req.originalUrl

//http://localhost:3000/users/originalUrl/get
router.get('/originalUrl/get',function(req, res, next){
	res.send(req.originalUrl);
})

//結果:
/users/originalUrl/get

protocol

使用:req.protocol

//http://localhost:3000/users/protocol/get
router.get('/protocol/get',function(req, res, next){
	res.send(req.protocol);
})

//結果:
http

secure

使用:req.secure

說明:用來判斷協議是否安全,如果是https,返回的就是true

//http://localhost:3000/users/secure/get
router.get('/secure/get',function(req, res, next){
	res.send(req.secure);
})

//結果:
false

xhr

使用:req.xhr

說明:判斷是否是異步請求

//http://localhost:3000/users/xhr/get
router.get('/xhr/get',function(req, res, next){
	res.send(req.xhr);
})

//結果:
false

拓展


hHTTP請求頭信息項描述

測試源碼


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM