一.獲取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 });