日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

nodejs接收get请求参数

發布時間:2024/9/30 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nodejs接收get请求参数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

nodejs接收get請求參數

  • 1.1-瀏覽器向服務器發送get請求參數的兩種方式
  • 1.2-服務端使用url模塊解析get請求參數

  • 在http協議中,一個完整的url路徑如下圖

    • 通過下圖我們可以得知,get請求的參數是直接在url路徑中顯示。
    • get的請求參數在path資源路徑的后面添加,以?表示參數的開始,以key=value表示參數的鍵值對,多個參數以&符號分割
      • hash部分表示的是資源定位符(滾動網頁可視區域),由瀏覽器自動解析處理,它的作用是滾動·騷到網頁指定的位置

1.1-瀏覽器向服務器發送get請求參數的兩種方式

  • *瀏覽器向服務端發送get請求主要有兩種方式,一種是使用href跳轉,url拼接參數
    • 一種是ajax請求發送參數 這兩種在服務端都是一樣處理,沒有任何區別
<button type="submit" class="btn btn-success" onclick="window.location.href='/get?name=張三&age=18'">點擊發送一個帶參數的get請求</button> <a href="/get?name=張三&age=18">不管是a標簽還是按鈕,只要是href路徑都可以</a> <script>$('#form').on('submit', function (e) {//禁用表單默認提交事件e.preventDefault();$.ajax({url: 'heroAdd',type: 'get',dataType: 'json',data: $(this).serialize(),success: function (data) {}});}); </script>
  • 完整代碼
<!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><title>Hero - Admin</title><!-- 導入jquery --><script src="/node_modules/jquery/dist/jquery.js"></script><!-- bootstrap布局 --><link rel="stylesheet" href="/node_modules/bootstrap/dist/css/bootstrap.css"><script src="/node_modules/bootstrap/dist/js/bootstrap.js"></script><style>.hero-list img {width: 50px;}</style> </head><body><header><div class="page-header container"><h1><a href="/">王者榮耀</a><small>英雄管理器</small></h1></div></header><div class="container hero-list"><form id="form"><div class="form-group"><label for="exampleInputEmail1">英雄名稱</label><input type="text" name="name" class="form-control" id="exampleInputEmail1" placeholder="請輸入英雄名稱"></div><div class="form-group"><label for="exampleInputPassword1">英雄性別</label><div class="radio"><label><input type="radio" name="gender" id="optionsRadios1" value="男" checked></label><label><input type="radio" name="gender" id="optionsRadios1" value="女" checked></label></div></div><div class="form-group"><label for="exampleInputFile">英雄圖片</label><!-- <input type="file" id="exampleInputFile"> --><p class="help-block">請上傳英雄圖片.</p></div><button type="submit" class="btn btn-success">點擊保存</button></form><!-- 瀏覽器向服務端發送get請求主要有兩種方式,一種是使用href跳轉,url拼接參數 一種是ajax請求發送參數 這兩種在服務端都是一樣處理,沒有任何區別 --><button type="submit" class="btn btn-success" onclick="window.location.href='/get?name=張三&age=18'">點擊發送一個帶參數的get請求</button><a href="/get?name=張三&age=18">不管是a標簽還是按鈕,只要是href路徑都可以</a></div> </body><script>$('#form').on('submit', function (e) {//禁用表單默認提交事件e.preventDefault();$.ajax({url: 'heroAdd',type: 'get',dataType: 'json',data: $(this).serialize(),success: function (data) {}});}); </script></html>

1.2-服務端使用url模塊解析get請求參數

  • 當http網絡網絡請求為GET方式時,如果有參數,則參數會在url路徑的后面通過鍵值對的方式來進行拼接,并且會對url進行編碼處理,看起來就像這樣

    • /heroAdd?name=%E5%BC%A0%E4%B8%89&gender=%E7%94%B7:?用于url與參數之間的分隔符,?前面是url路徑,后面是參數
      • 如果是多個參數,則以&符號來進行分割
  • 客戶端GET請求傳參,服務端想要解析到具體的參數比較麻煩,先要對請求進行解碼,然后使用特定字符?和&來分割字符,極其不方便

    • nodejs中有一個專用于解析url請求的模塊,這就是url模塊:http://nodejs.cn/api/url.html
  • url模塊的使用很簡單,API不多

//導入url模塊 var url = require('url');//1.默認情況下,如果url路徑中有中文,則會對中文進行URI編碼,所以服務端要想獲取中文需要對url進行URI解碼 console.log(encodeURI(req.url));// 2.url.parse 方法可以將一個 URL 路徑解析為一個方便操作的對象 // 將第二個可選參數指定為 true, 表示將結果中的 query 解析為一個對象 var parseObj = url.parse(req.url, true); console.log(parseObj);var pathname = parseObj.pathname; //相當于無參數的url路徑 console.log(pathname); // 這里將解析拿到的查詢字符串對象作為一個屬性掛載給 req 對象,這樣的話在后續的代碼中就可以直接通過 req.query 來獲取查詢字符串了 req.query = parseObj.query; console.log(req.query);
  • 打印結果如下,下方這張圖可以很好的解釋每一個字段的含義
    • 這里很多null的原因是我們客戶端請求沒有寫完整的路徑,直接是斜杠加路徑,省略了我們的ip和端口號
Url {protocol: null,slashes: null,auth: null,host: null,port: null,hostname: null,hash: null,//讓瀏覽器滾動到指定id的標簽位置search: '?name=%E5%BC%A0%E4%B8%89&age=18',query: { name: '張三', age: '18' },pathname: '/get',path: '/get?name=%E5%BC%A0%E4%B8%89&age=18',href: '/get?name=%E5%BC%A0%E4%B8%89&age=18' }
  • 完整代碼
//1.導入http模塊 var http = require('http'); //導入文件模塊 var fs = require('fs'); //導入路徑模塊 var path = require('path'); //導入url模塊 var url = require('url'); //2.創建服務器 var app = http.createServer();//3.添加響應事件 app.on('request', function (req, res) {//1.默認情況下,如果url路徑中有中文,則會對中文進行URI編碼,所以服務端要想獲取中文需要對url進行URI解碼console.log(encodeURI(req.url));// 2.url.parse 方法可以將一個 URL 路徑解析為一個方便操作的對象// 將第二個可選參數指定為 true, 表示將結果中的 query 解析為一個對象var parseObj = url.parse(req.url, true);console.log(parseObj);var pathname = parseObj.pathname; //相當于無參數的url路徑console.log(pathname);// 這里將解析拿到的查詢字符串對象作為一個屬性掛載給 req 對象,這樣的話在后續的代碼中就可以直接通過 req.query 來獲取查詢字符串了req.query = parseObj.query;console.log(req.query);if (pathname === '/heroAdd') {fs.readFile('./heroAdd.html', function (err, data) {if (err) {throw err;}res.end(data);});} else if (pathname.indexOf('/node_modules') === 0) {fs.readFile(__dirname + pathname, function (err, data) {if (err) {throw err;} else {console.log(data);res.end(data);}});} else {res.end('請求路徑: ' + req.url);} });//4.監聽端口號 app.listen(3000, function () {console.log('歡迎來到王者榮耀英雄管理器'); });

總結

以上是生活随笔為你收集整理的nodejs接收get请求参数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 视频区图片区小说区 | 伊人3 | 不卡av在线播放 | 国产在线麻豆 | 国产在线拍 | 在线观看成人黄色 | 99久久99久久免费精品蜜臀 | 尤物视频网站在线观看 | 色综合狠狠爱 | 99久久久无码国产精品性黑人 | 亚洲自拍小视频 | 夜夜骑夜夜操 | 日本一本视频 | 亚洲涩涩网 | 成人黄色大片在线观看 | 在线 日本 制服 中文 欧美 | 日韩一二三区在线观看 | 免费a级片视频 | 韩国久久久 | 插插操操 | 欧美黄色三级视频 | 中文字幕无码av波多野吉衣 | 色噜噜av| 日本少妇吞精囗交视频 | 日韩视频免费 | 又黄又爽视频在线观看 | 日本一区二区在线播放 | 欧洲成人午夜精品无码区久久 | 国产精品久久久久久久妇 | 亚洲伊人av| 日本黄色免费看 | 中文字幕在线观看91 | 最新日韩视频 | 伊人自拍视频 | 日本中文字幕一区二区 | 操操综合 | 二区三区偷拍浴室洗澡视频 | 久久伊人在 | 中文无码日韩欧 | 黄色网址国产 | 日本一区视频在线 | 中字幕一区二区三区乱码 | 91色综合| 久久精品亚洲精品国产欧美 | 欧美一区二区三区啪啪 | 三年中文免费观看大全动漫 | 日本啊啊视频 | 美女免费黄色 | 天天干天天色天天 | 五月激情综合婷婷 | 亚洲视频高清 | 中文在线字幕免费观看 | av永久免费 | 蜜乳av一区 | 中国女人黄色大片 | 色婷婷91| 91精品免费在线观看 | 手机在线免费视频 | 欧美大片xxxx | 韩国av在线免费观看 | 国产精品无码av在线有声小说 | 夜夜草影院| 97久久精品视频 | 会喷水的亲姐姐 | 在线观看黄色动漫 | 午夜视频www| 91精品在线观看视频 | 欧美日韩一区二区中文字幕 | 国产精品无码一区二区三区三 | 日本草草影院 | 玖草影院| 国模精品视频一区二区 | 国产精品免费久久久 | 成人福利在线观看 | 久久综合区| 人妻少妇一区二区 | 国产欧美日韩在线播放 | 午夜在线视频免费观看 | 免费看一级黄色片 | 久久成人国产 | 悟空影视大全免费高清观看在线 | 欧美一级久久 | 欧美视频一区二区三区 | 蜜桃一区二区 | 欧美日韩一区二区三区电影 | 欧美色图1 | 亚洲视频网站在线 | 一级做a爰片久久毛片潮喷 天天透天天干 | 美女张开腿流出白浆 | 国产精品久久久久久一区二区三区 | 久久美利坚 | 国产成人日韩 | 91精品国产闺蜜国产在线闺蜜 | 台湾色综合 | 最新成人在线 | 中文在线最新版天堂 | 午夜在线网站 | 香蕉国产精品视频 | 97av视频|