1. 程式人生 > >node的express框架接收get/post請求時,引數獲取方式

node的express框架接收get/post請求時,引數獲取方式

一.接收get請求

情況一:引數是url的一部分:

1 eg:router.get('/nodeServer/dataSet/page/:name/:pageNum/:pageSize', function(request, resopnse){
2    // 獲取引數name , pageNum, pageisze
3   let name = request.params.name; 
5    let pageNum = request.params.pageNum;
7    let pageisze = request.params.pageisze;
8 });

情況二:引數以url?param=value的形式傳遞:

1 eg:router.get('/nodeServer/dataSet/page?name=name1&pageNum=3&pageSize=10', function(request, resopnse){
2    // 獲取引數name , pageNum, pageisze
3   let name = request.query.name; 
5    let pageNum = request.query.pageNum;
7    let pageisze = request.query.pageisze;
8 });

 

總結:request.params 與 requset.query的 區別:

    req.params包含路由引數(在URL的路徑部分),而req.query包含URL的查詢引數(在URL的?後的引數)

二.接收post請求

ajax的Content-type屬性決定的post請求引數傳遞方式:

情況一:前端引數以Request Payload形式傳遞,引數需要拼接成url字串 

此時Content-type=text/plain;charset=UTF-8,ajax請求方式有:axios.post, 原生ajax的post

 1 eg:router.post('/nodeServer/get/dataSet', function(request, resopnse){
2 // 獲取引數name , pageNum, pageisze 3 4  let data = ''; 5  request.on('data', function (chunk) { 6    data += chunk; 8  }); 9  request.on('end', function () { 10    let params = JSON.parse(data); 11    let name = params.name; 13    let pageNum = params.pageNum; 15    let pageSize = paramas.pageSize; 17  });

情況二: 前端引數以Form Data 形式傳遞

此時Content-type=application/x-www-form-urlencoded,ajax請求方式有:$post,

此時Content-type=application/json,ajax請求方式有:$ajax, 原生form表單

 1 eg:router.post('/nodeServer/get/dataSet', function(request, resopnse){
 2    // 獲取引數name , pageNum, pageisze
 3  let params = request.body;
 5  let name = params.name;
 7  let pageNum = params.pageNum;
 9  let pageSize = paramas.pageSize;
11 });