nodejs中轉(zhuǎn)換URL字符串與查詢字符串詳解
來源:易賢網(wǎng) 閱讀:3262 次 日期:2014-11-28 10:46:06
溫馨提示:易賢網(wǎng)小編為您整理了“nodejs中轉(zhuǎn)換URL字符串與查詢字符串詳解”,方便廣大網(wǎng)友查閱!

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

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

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

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

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

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

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

代碼如下:

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])

代碼如下:

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)換為一個對象,根據(jù)URL字符串中的不同內(nèi)容,該對象可能具有的屬性及其含義如下.

href:被轉(zhuǎn)換的原URL字符串.

protocol:客戶端發(fā)出請求時使用的協(xié)議.

slashes:在協(xié)議與路徑中間時候使用"http://"分隔符.

host:URL字符串中的完整地址及端口號,該地址可能為一個IP地址,也可能為一個主機(jī)名.

auth:URL字符串中的認(rèn)證信息部分.

hostname:URL字符串中的完整地址,該地址可能為一個IP地址,也可能為一個主機(jī)名.

search:Url字符串中的查詢字符串,包含起始字符"?"

path:url字符串中的路徑,包含查詢字符串.

query:url字符串中的查詢字符串,不包含起始字符"?",或根據(jù)該查詢字符串而轉(zhuǎn)換的對象(根據(jù)parse()方法所用參數(shù)而決定query屬性值);

hash:url字符串中的散列字符串,包含起始字符"#".

url.parse(urlstr,[parseQueryString]);

urlStr:是需要轉(zhuǎn)換的URL字符串,

parseQueryString:是一個布爾值,當(dāng)參數(shù)為true時,內(nèi)部使用querystring模塊查詢字符串轉(zhuǎn)換為一個對象,參數(shù)值為false時不執(zhí)行該轉(zhuǎn)換操作,默認(rèn)是false

代碼如下:

var url=require("url");

var str="";

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="";

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' }

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

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

代碼如下:

var url=require("url");

var str="";

var res=url.parse(str,true);

console.log(url.format(res));

結(jié)果是:

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

更多信息請查看IT技術(shù)專欄

更多信息請查看腳本欄目
易賢網(wǎng)手機(jī)網(wǎng)站地址:nodejs中轉(zhuǎn)換URL字符串與查詢字符串詳解
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國考·省考課程試聽報名

  • 報班類型
  • 姓名
  • 手機(jī)號
  • 驗證碼
關(guān)于我們 | 聯(lián)系我們 | 人才招聘 | 網(wǎng)站聲明 | 網(wǎng)站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 加入群交流 | 手機(jī)站點 | 投訴建議
工業(yè)和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網(wǎng)安備53010202001879號 人力資源服務(wù)許可證:(云)人服證字(2023)第0102001523號
云南網(wǎng)警備案專用圖標(biāo)
聯(lián)系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關(guān)注公眾號:hfpxwx
咨詢QQ:526150442(9:00—18:00)版權(quán)所有:易賢網(wǎng)
云南網(wǎng)警報警專用圖標(biāo)