成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

聊聊Node中的url模塊和querystring模塊

聊聊Node中的url模塊和querystring模塊

url模塊和querystring模塊是非常重要的兩個URL處理模塊。在做node服務端的開發時會經常用到。

url

在介紹url模塊之前我們先來一張圖,看懂了這張圖對于url這個模塊你就基本上沒什么問題了。

聊聊Node中的url模塊和querystring模塊

我們來解釋下各自的含義

  • protocol:協議,需要注意的是包含了:,并且是小寫的。【相關教程推薦:nodejs視頻教程、編程教學】
  • slashes:如果:后面跟了兩個//,那么為true。
  • auth:認證信息,如果有密碼,為usrname:passwd,如果沒有,則為usrname。注意,這里區分大小寫。
  • host:主機名。注意包含了端口,比如ke.qq.com:8080,并且是小寫的。
  • hostname:主機名,不包含端口,并且是小寫的。
  • port: 端口號。
  • path:路徑部分,包含search部分。
  • pathname:路徑部分,不包含search部分。
  • search:查詢字符串,注意,包含了?,此外,值是沒有經過decode的。
  • query:字符串 或者 對象。如果是字符串,則是search去掉?,其余一樣;如果是對象,那么是decode過的。
  • hash:哈希部分,注意包含了#
  • href:原始的地址。不過需要注意的是,protocolhost會被轉成小寫字母。

下面我們來講解下它的三個常用方法

parse(urlString, parseQueryString, slashesDenoteHost)

該方法將url字符串,解析成object,便于開發者進行操作。

const url = require("url");  const str = "http://user:password@randy.com:8080/index.html?nick=%E4%B8%AD%E6%96%87#part=1";  const obj = url.parse(str); console.log(obj);
登錄后復制

輸出

聊聊Node中的url模塊和querystring模塊

該方法還支持傳遞另外兩個參數,parseQueryStringslashesDenoteHos

parseQueryString:(默認為false)如為false,則urlObject.query為未解析的字符串,比如nick=%E4%B8%AD%E6%96%87,且對應的值不會decode;如果parseQueryString為true,則urlObject.queryobject,比如{ nick: '中文' },且值會被`decode;

const url = require("url");  const str = "http://user:password@randy.com:8080/index.html?nick=%E4%B8%AD%E6%96%87#part=1";  const obj2 = url.parse(str, true); console.log(obj2);
登錄后復制

聊聊Node中的url模塊和querystring模塊

slashesDenoteHos:(默認為false)如果為true,那么類似//randy/nick里的randy就會被認為是hostname;如果為false,則randy被認為是pathname的一部分。

光看起來可能不太理解這句話的含義,下面筆者舉個例子我相信你們就明白了。

const str2 = "//randy/nick";  const obj3 = url.parse(str2, true, false); console.log(obj3); const obj4 = url.parse(str2, true, true); console.log(obj4);
登錄后復制

聊聊Node中的url模塊和querystring模塊

format(urlObject)

這個方法就是parse的反向操作。將對象轉成url字符串。

const pathObj = {   protocol: "http:",   slashes: true,   auth: "user:password",   host: "randy.com:8080",   port: "8080",   hostname: "randy.com",   hash: "#part=1",   search: "?nick=%E4%B8%AD%E6%96%87",   query: "nick=%E4%B8%AD%E6%96%87",   pathname: "/index.html",   path: "/index.html?nick=%E4%B8%AD%E6%96%87",   href: "http://user:password@randy.com:8080/index.html?nick=%E4%B8%AD%E6%96%87#part=1", };  console.log(url.format(pathObj)); // http://user:password@randy.com:8080/index.html?nick=%E4%B8%AD%E6%96%87#part=1
登錄后復制

resolve(from, to)

該方法用于解析相對于基本URL的目標URL

console.log(url.resolve("/one/two/three", "four")); // /one/two/four console.log(url.resolve("http://example.com/", "/one")); // http://example.com/one console.log(url.resolve("http://example.com/one", "/two")); // http://example.com/two console.log(url.resolve("http://example.com/one/ddd/ddd/ddd", "./two")); // http://example.com/one/ddd/ddd/two console.log(url.resolve("http://example.com/one/ddd/ddd/ddd", "../two")); // http://example.com/one/ddd/two console.log(url.resolve("http://example.com/one/ddd/ddd/ddd", ".../two")); // http://example.com/one/ddd/ddd/.../two
登錄后復制

querystring

querystring這個模塊,也是用來做url查詢參數的解析。這里我們重點分析下它的parsestringify兩個方法。

parse(str, sep, eq, options)

parse是將查詢字符串轉成對象類型,并且也會decode

const querystring = require("querystring");  const str = "nick=randy&age=24&nick2=%E4%B8%AD%E6%96%87"; const obj = querystring.parse(str); console.log(obj); // { nick: 'randy', age: '24', nick2: '中文' }
登錄后復制

下面我們再來看看它的第二和第三個參數。其實相當于可以替換&、=為自定義字符,下面筆者舉個例子就很快明白了。

const str1 = "name-randy|country-cn"; const obj1 = querystring.parse(str1); console.log(obj1); // { 'name-randy|country-cn': '' } const obj2 = querystring.parse(str1, "|", "-"); console.log(obj2); // { name: 'randy', country: 'cn' }
登錄后復制

相當于把&替換成了|,把=替換成了-。筆者感覺配到這種情況應該不多。

stringify(obj, sep, eq, options)

這個方法就是上面parse的反向操作。下面咱們直接上例子

const obj3 = {   nick: "randy",   age: "24", }; const str4 = querystring.stringify(obj3); console.log(str4); // nick=randy&age=24
登錄后復制

這個方法也是支持自定義分割符的。

const obj5 = {   name: "randy",   country: "cn", }; const str6 = querystring.stringify(obj5, "|", "-"); console.log(str6); // name-randy|country-c
登錄后復制

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
岛国无码AⅤ片在线观看| 无遮挡粉嫩小泬久久久久久久动漫| 好男人2019在线视频播放观看| 国产精品99久久久久久人| 国产手机精品一区二区| 精品人妻一区二区三区四区在线 | 姬小满乳液狂飙奖励自己| 久久精品99久久香蕉国产色戒| 免费看国产曰批40分钟| 人妻少妇看A偷人无码电影| 久久久久亚洲AV无码网站少妇 | 天天狠天天透天天伊人| 亚洲成AⅤ人片久青草影院 | 欧美亚洲一区二区三区| 麻豆av无码人妻一区二区三区| 欧美精品色婷婷五月综合| 色噜噜人妻丝袜aV先锋影音先| 小荡货奶真大水真多紧视频| 野花香在线视频免费观看第一集 | 国产SM残忍打屁股调教视频| 后入内射无码人妻一区| 免费中国大但人文艺术在线观看| 久久精品成人免费国产片小草| 男人边吃奶边做好爽免费视频| 日日噜噜噜夜夜爽爽狠狠| 日本大片免A费观看视频| 无码少妇精品一区二区免费动态 | 国产精品无码专区| 久久久久久A亚洲欧洲AⅤ| 欧美人妻少妇精品视频专区| 无码人妻AⅤ一区二区三区蜜桃| 亚洲中文久久久久久精品| 八戒.八戒电影免费观看| 国产日产精品_国产精品毛片| 老阿姨哔哩哔哩B站肉片茄子芒果 浪货趴办公桌~H揉秘书电影无码 | 兰姨不敢发出一点声音怕吵醒风| 日韩精品无码一区二区三区| 亚洲精品国产A久久久久久| WWW.一区二区三区在线 || 国产性生交XXXXX免费| 民工把奶头吸得又大又长| 忘忧草日本在线播放WWW| 伊人久久亚洲精品一区| 国产爆乳无码视频在线观看| 久久人人爽人人爽人人AV东京热 | 妺妺窝人体色WWW在线观看婚闹 | 国农村精品国产自线拍| 欧美性狂猛BBBBBBXXXXXX| 亚洲AV无码久久精品成人 | 伊人色综合久久天天五月婷| 粉嫩虎白女流水白浆在线播放| 久久久G0G0午夜无码精品| 日产精品码2码三码四码区| 亚洲嫩模喷白浆在线观看 | 大胆顶级欧美艺术图片| 久久久99精品免费观看| 婷婷开心色四房播播| 中文字幕乱码人妻综合二区三区| 国产美女裸体丝袜喷水视频| 欧美AAAAAA级午夜福利视频| 亚洲H成年动漫在线观看网站| 暗交拗女一区二区三区| 久久精品国产亚洲AⅤ无码| 十八禁无码免费网站| 1000部拍拍拍18勿入免费视频下载| 国产乱子伦高清露脸对白| 欧美性猛烈XXXX极品少妇| 亚洲欧美日韩精品久久| 高清国产AV一区二区三区| 免费真人视频网站直播下载| 亚洲国产成人资源在线| 国产99在线 | 亚洲| 欧美成人精品三级网站| 亚洲欧好州第一的日产SUV| 国产AV一区二区三区最新精品| 年轻漂亮的女邻居观看在线视频| 亚洲国产成人丁香五月激情| 国产MV高清砖码2022| 欧洲熟妇色XXXXX欧美老妇伦| 亚洲一线产区二线产区区别在哪| 国产精品日韩欧美一区二区三区| 青草青草视频2免费观看| 一本一道AⅤ无码中文字幕| 国产精品永久免费视频| 日本丰满人妻熟妇BBBBB| 真实的国产乱XXXX在线| 精产国品一二三产品麻豆| 天天做天天爱天天综合网| 宝宝怎么这么湿~别磨| 妺妺窝人体色WWW精品| 亚洲日韩AV无码中文| 国产在线无码一区二区三区| 老熟女与小伙偷欢视频| 亚洲AV无码一区二区三区人区| 国产爆乳成人AV在线播放| 人人妻人人澡人人爽人人精品图片 | 无遮挡呻吟娇喘视频免费播放 | 午夜理论片YY44880影院| 成人欧美一区二区三区性视频| 女朋友特别闷骚很吸引别人| 野花韩国高清免费神马| 精品国产午夜福利在线观看| 性欧美大战久久久久久久| 国产成人无码AⅤ片在线观看视频| 精品久久久久久成人AV| 性妇WBBBB搡BBBB嗓1| 国产成人精品一区二区三区 | 女人自慰喷水全过程免费观看| 一个添下面两个吃奶| 久久99精品国产99久久6男男| 亚洲AV无码一区二区少妇| 国产乱子经典视频在线观看| 无码人妻丰满热妇又大又粗 | 国产成人精品人人| 色妞色视频一区二区三区四区| 办公室强肝的播出时间| 欧美在线三级艳情网站| CHINA 农村妇女NOMEX| 欧美 日韩 国产 成人 在线观| 中文字幕无码乱码人妻系列蜜桃| 美国ZOOM动物| 中文字幕一线产区和二线区的区别| 老熟女高潮一区二区三区| 中国老太太WBBHD| 免费视频玩乳吃奶不遮挡网站| 中文字幕日本六区小电影| 蜜臀AV性久久久久蜜臀AⅤ麻豆| 中国少妇初尝黑人巨高清| 蜜臀久久久久精品久久久| 性欧美玩弄性少妇HD| 国产精品亚洲一区二区三区| 无码精品人妻AV一区二区三区| 国产精品国产三级国产AV剧情| 无码一区二区三区AV免费| 国产日韩精品欧美一区喷水| 亚洲AV无码成人精品网站漏男| 狠狠色噜噜狠狠狠8888在| 亚洲欧美乱综合图片区小说区| 久久精品人人槡人妻人人玩| 影音先锋每日AV色资源站| 男女乱婬免费视频黑人| GOOD电影网韩国三级无码| 人妻斩り56歳无码| 国产AV无码专区亚洲AV人妖| 午夜伦情电午夜伦情电影| 狠狠色噜噜狠狠狠777米奇小说| 亚洲无熟妇成人无码| 蜜桃av一区二区三区| CC小恩雅透明内抹油的使用方法| 日韩成人一区二区三区在线观看| 国产成人AV综合久久| 亚洲AV色香蕉一区二区三区蜜桃 | 日韩乱妇乱女熟妇熟女AV| 国产成人精品午夜福利| 亚洲AV嫩草AV极品在线观看| 久久99精品国产99久久| 777国产偷窥盗摄精品品在线| 人妻中文字幕AV无码专区| 国产AV激情无码久久| 亚洲AV成人精品一区二区三区| 国产AV无码专区亚洲AV| 亚欧美日乱码视频在线观看| 久久精品人人槡人妻人人玩AV| 中文字幕乱偷无码AV先锋蜜桃| 人人妻人人做人人人少妇| 国产精品毛多多水多| 亚洲欧洲AV综合色无码| 农民人伦一区二区三区| 丰满岳乱妇在线观看中字无码| 亚洲AV秘 无码一区白峰美| 久久久久亚洲精品无码网址色欲| JAPANESE厨房乱TUB偷| 污污污WWW精品国产网站| 久久精品成人免费国产片| CHINESE国产AVVIDEOXXXX实拍| 少妇高潮喷水久久久久久久久久| 狠狠躁夜夜躁人爽碰88A| 18禁无遮挡无码网站免费| 少妇久久久久久人妻无码| 娇妻当着我的面被4P| 99久久免费国产精品四虎99久久精品免费看国产一区二区 | 无码AV大香线蕉| 久久久亚洲一区少妇无码| А√中文在线资源库| 香蕉久久一区二区不卡无毒影院| 老色鬼久久亚洲AV综合0男男| 嘼皇PORONOⅤIDEOS极| 色欲丰满熟妇人妻av一区二区| 厨房里的激战2类型| 亚洲成A人片在线观看无遮挡 | 精品国产一区二区三区AV性色 | 日日噜噜夜夜狠狠视频无码| 精品国产国语对白久久免费| AV天堂午夜精品一区| 小雪的L3又嫩又紧又多水图| 蜜桃Av噜噜一区二区三区网址| 国产成人精品亚洲日本语言| 中日双语字幕高清在线观看 | 国产精品综合一区二区三区| 中文字幕一区二区三区日韩精品|