最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

nodejs中轉(zhuǎn)換URL字符串與查詢字符串詳解

 更新時(shí)間:2014年11月26日 11:57:43   投稿:hebedich  
這篇文章主要介紹了nodejs中轉(zhuǎn)換URL字符串與查詢字符串詳解,需要的朋友可以參考下

一個(gè)完整的URL字符串中,從"?"(不包括?)到"#"(如果存在#)或者到該URL字符串結(jié)束(如果不存在#)的這一部分稱為查詢字符串.

可以使用Query String模塊中的parse方法將該字符串轉(zhuǎn)換為一個(gè)對(duì)象,parse方法的使用方式如下所示:

querystring.parse(str,[sep],[eq],[options]);

str表示被轉(zhuǎn)換的查詢字符串,

sep.字符串中的分隔符,默認(rèn)是&

eq.該字符串中的分配符,默認(rèn)為=."="左邊是key,右邊是value

options:是一個(gè)對(duì)象,可以在該對(duì)象中使用一個(gè)整數(shù)值類型的maxKeys屬性來指定轉(zhuǎn)換后的對(duì)象中的屬性個(gè)數(shù),如果將maxKeys屬性值設(shè)定為0.其效果等于不使用maxKeys屬性值

復(fù)制代碼 代碼如下:

 var querystring=require("querystring");
 var str="username=guoyansi&age=40&sex=male";
 var res=querystring.parse(str);
 console.log("1:%j",res);//1:{"username":"guoyansi","age":"40","sex":"male"}
 res=querystring.parse(str,"!");
 console.log("2:%j",res);//2:{"username":"guoyansi&age=40&sex=male"}
 res=querystring.parse(str,"&");
 console.log("3:%j",res);//3:{"username":"guoyansi","age":"40","sex":"male"}
 str="username=guoyansi!age=40!sex=male";
 res=querystring.parse(str,"!");
 console.log("4:%j",res);//4:{"username":"guoyansi","age":"40","sex":"male"}
 res=querystring.parse(str,"!","=");
 console.log("5:%j",res);//5:{"username":"guoyansi","age":"40","sex":"male"}
 res=querystring.parse(str,"!",":");
 console.log("6:%j",res);//6:{"username=guoyansi":"","age=40":"","sex=male":""}
 res=querystring.parse(str,"!","=",{maxKeys:2});
 console.log("7:%j",res);//7:{"username":"guoyansi","age":"40"}

stringify是將字符串轉(zhuǎn)化成查詢字符串的格式.

querystring.stringify(obj,[sep],[eq])

復(fù)制代碼 代碼如下:

 var querystring=require("querystring");
 var res= querystring.stringify({"username":"guoyansi","age":"40","sex":"male"});
 console.log(res);//username=guoyansi&age=40&sex=male
 res=querystring.stringify({"username":"guoyansi","age":"40","sex":"male"},"!");
 console.log(res);//username=guoyansi!age=40!sex=male
 res=querystring.stringify({"username":"guoyansi","age":"40","sex":"male"},"&",":");
 console.log(res);//username:guoyansi&age:40&sex:male
 res=querystring.stringify({"username":"guoyansi","age":["40","24"]},"&","=");
 console.log(res);//username=guoyansi&age=40&age=24

在url模塊中,可以使用parse()方法將URL字符串轉(zhuǎn)換為一個(gè)對(duì)象,根據(jù)URL字符串中的不同內(nèi)容,該對(duì)象可能具有的屬性及其含義如下.

href:被轉(zhuǎn)換的原URL字符串.
protocol:客戶端發(fā)出請(qǐng)求時(shí)使用的協(xié)議.
slashes:在協(xié)議與路徑中間時(shí)候使用"http://"分隔符.
host:URL字符串中的完整地址及端口號(hào),該地址可能為一個(gè)IP地址,也可能為一個(gè)主機(jī)名.
auth:URL字符串中的認(rèn)證信息部分.
hostname:URL字符串中的完整地址,該地址可能為一個(gè)IP地址,也可能為一個(gè)主機(jī)名.
search:Url字符串中的查詢字符串,包含起始字符"?"
path:url字符串中的路徑,包含查詢字符串.
query:url字符串中的查詢字符串,不包含起始字符"?",或根據(jù)該查詢字符串而轉(zhuǎn)換的對(duì)象(根據(jù)parse()方法所用參數(shù)而決定query屬性值);
hash:url字符串中的散列字符串,包含起始字符"#".
 
url.parse(urlstr,[parseQueryString]);
urlStr:是需要轉(zhuǎn)換的URL字符串,
parseQueryString:是一個(gè)布爾值,當(dāng)參數(shù)為true時(shí),內(nèi)部使用querystring模塊查詢字符串轉(zhuǎn)換為一個(gè)對(duì)象,參數(shù)值為false時(shí)不執(zhí)行該轉(zhuǎn)換操作,默認(rèn)是false

復(fù)制代碼 代碼如下:

 var url=require("url");
 var str="http://user:pass@host,com:8080/users/user.php?username=sisi&age=24&sex=male#name1";
 var res=url.parse(str);
 console.log(res);

復(fù)制代碼 代碼如下:

{ protocol: 'http:',
  slashes: true,
  auth: 'user:pass',
  host: 'host:8080',
  port: '8080',
  hostname: 'host',
  hash: '#name1',
  search: '?username=sisi&age=24&sex=male',
  query: 'username=sisi&age=24&sex=male',
  pathname: '/,com/users/user.php',
  path: '/,com/users/user.php?username=sisi&age=24&sex=male',
  href: 'http://user:pass@host:8080/,com/users/user.php?username=sisi&age=24&sex=male#name1' }

復(fù)制代碼 代碼如下:

 var url=require("url");
 var str="http://user:pass@host,com:8080/users/user.php?username=sisi&age=24&sex=male#name1";
 var res=url.parse(str,true);
 console.log(res);

復(fù)制代碼 代碼如下:

{ protocol: 'http:',
  slashes: true,
  auth: 'user:pass',
  host: 'host:8080',
  port: '8080',
  hostname: 'host',
  hash: '#name1',
  search: '?username=sisi&age=24&sex=male',
  query: { username: 'sisi', age: '24', sex: 'male' },
  pathname: '/,com/users/user.php',
  path: '/,com/users/user.php?username=sisi&age=24&sex=male',
  href: 'http://user:pass@host:8080/,com/users/user.php?username=sisi&age=24&sex=male#name1' }

第一個(gè)例子和第二個(gè)例子不同之處在于parse的第二個(gè)參數(shù),導(dǎo)致了結(jié)果中的query的不同

可以將一個(gè)url轉(zhuǎn)換過的對(duì)象轉(zhuǎn)換成一個(gè)url字符串.

復(fù)制代碼 代碼如下:

 var url=require("url");
 var str="http://user:pass@host,com:8080/users/user.php?username=sisi&age=24&sex=male#name1";
 var res=url.parse(str,true);
 console.log(url.format(res));

結(jié)果是:

http://user:pass@host:8080/,com/users/user.php?username=sisi&age=24&sex=male#name1

以上就是node中轉(zhuǎn)換URL字符串與查詢字符串的全部?jī)?nèi)容了,好好研究下,其實(shí)挺簡(jiǎn)單的。

相關(guān)文章

  • 淺談使用nodejs搭建web服務(wù)器的過程

    淺談使用nodejs搭建web服務(wù)器的過程

    這篇文章主要介紹了淺談使用nodejs搭建web服務(wù)器的過程,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • koa2 數(shù)據(jù)api中間件設(shè)計(jì)模型的實(shí)現(xiàn)方法

    koa2 數(shù)據(jù)api中間件設(shè)計(jì)模型的實(shí)現(xiàn)方法

    這篇文章主要介紹了koa2 數(shù)據(jù)api中間件設(shè)計(jì)模型的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • Node.js 使用遞歸實(shí)現(xiàn)遍歷文件夾中所有文件

    Node.js 使用遞歸實(shí)現(xiàn)遍歷文件夾中所有文件

    這篇文章主要介紹了Node.js使用遞歸實(shí)現(xiàn)遍歷文件夾中所有文件,需要的朋友可以參考下
    2017-09-09
  • 利用nvm管理多個(gè)版本的node.js與npm詳解

    利用nvm管理多個(gè)版本的node.js與npm詳解

    這篇文章主要給大家介紹了關(guān)于利用nvm管理多個(gè)版本的node.js與npm的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧。
    2017-11-11
  • Node.js 8 中的 util.promisify的詳解

    Node.js 8 中的 util.promisify的詳解

    本篇文章主要介紹了Node.js 8 中的 util.promisify的詳解,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-06-06
  • node快速搭建后臺(tái)的實(shí)現(xiàn)步驟

    node快速搭建后臺(tái)的實(shí)現(xiàn)步驟

    本文主要介紹了node快速搭建后臺(tái),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-12-12
  • 快速解決brew安裝特定版本flow的問題

    快速解決brew安裝特定版本flow的問題

    今天小編就為大家分享一篇快速解決brew安裝特定版本flow的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • node如何將package.json中的包降為低版本或者升級(jí)為高版本

    node如何將package.json中的包降為低版本或者升級(jí)為高版本

    比如現(xiàn)在你用某個(gè)包的當(dāng)前版本,但是你安裝的版本高了,那么你應(yīng)該這么做,首先刪除node項(xiàng)目中的node_modules目錄,防止安裝時(shí)的包不一致,下面給大家介紹node將package.json中的包降為低版本或者升級(jí)為高版本的方法,感興趣的朋友一起看看吧
    2023-11-11
  • Node.js進(jìn)程退出的深入理解

    Node.js進(jìn)程退出的深入理解

    NodeJS可以感知和控制自身進(jìn)程的運(yùn)行環(huán)境和狀態(tài),也可以創(chuàng)建子進(jìn)程并與其協(xié)同工作,這使得NodeJS可以把多個(gè)程序組合在一起共同完成某項(xiàng)工作,下面這篇文章主要給大家介紹了關(guān)于Node.js進(jìn)程退出的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • ajax+node+request爬取網(wǎng)絡(luò)圖片的實(shí)例(宅男福利)

    ajax+node+request爬取網(wǎng)絡(luò)圖片的實(shí)例(宅男福利)

    下面小編就為大家?guī)硪黄猘jax+node+request爬取網(wǎng)絡(luò)圖片的實(shí)例(宅男福利)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-08-08

最新評(píng)論

葫芦岛市| 时尚| 禄劝| 岐山县| 安平县| 子长县| 温泉县| 卫辉市| 大石桥市| 凤翔县| 胶南市| 阿克苏市| 浦北县| 上栗县| 蒙山县| 阿城市| 湘乡市| 乌兰浩特市| 邵武市| 北海市| 拉孜县| 油尖旺区| 麻城市| 花莲县| 禹州市| 化德县| 肥西县| 分宜县| 明光市| 蓬溪县| 铜梁县| 九寨沟县| 稻城县| 鲁甸县| 霍林郭勒市| 芦溪县| 临安市| 香河县| 彰化县| 峨眉山市| 吴忠市|