nodejs URL模塊操作URL相關(guān)方法介紹
來(lái)源:易賢網(wǎng) 閱讀:743 次 日期:2015-03-06 10:28:04
溫馨提示:易賢網(wǎng)小編為您整理了“nodejs URL模塊操作URL相關(guān)方法介紹”,方便廣大網(wǎng)友查閱!

這篇文章主要介紹了nodejs URL模塊操作URL相關(guān)方法介紹,本文講解了parse方法、format方法、querystring方法等,需要的朋友可以參考下

url模塊

處理HTTP請(qǐng)求時(shí)url模塊使用率超高,因?yàn)樵撃K允許解析URL、生成URL,以及拼接URL。首先我們來(lái)看看一個(gè)完整的URL的各組成部分。

代碼如下:

href

-----------------------------------------------------------------

host path

--------------- ----------------------------

http: // user:pass @ host.com : 8080 /p/a/t/h ?query=string #hash

----- --------- -------- ---- -------- ------------- -----

protocol auth hostname port pathname search hash

------------

query

我們可以使用.parse方法來(lái)將一個(gè)URL字符串轉(zhuǎn)換為URL對(duì)象,示例如下。

代碼如下:

url.parse('http://user:pass@host.com:8080/p/a/t/h?query=string#hash');

/* =>

{ protocol: 'http:',

auth: 'user:pass',

host: 'host.com:8080',

port: '8080',

hostname: 'host.com',

hash: '#hash',

search: '?query=string',

query: 'query=string',

pathname: '/p/a/t/h',

path: '/p/a/t/h?query=string',

href: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash' }

*/

傳給.parse方法的不一定要是一個(gè)完整的URL,例如在HTTP服務(wù)器回調(diào)函數(shù)中,request.url不包含協(xié)議頭和域名,但同樣可以用.parse方法解析。

代碼如下:

http.createServer(function (request, response) {

var tmp = request.url; // => "/foo/bar?a=b"

url.parse(tmp);

/* =>

{ protocol: null,

slashes: null,

auth: null,

host: null,

port: null,

hostname: null,

hash: null,

search: '?a=b',

query: 'a=b',

pathname: '/foo/bar',

path: '/foo/bar?a=b',

href: '/foo/bar?a=b' }

*/

}).listen(80);

.parse方法還支持第二個(gè)和第三個(gè)布爾類型可選參數(shù)。第二個(gè)參數(shù)等于true時(shí),該方法返回的URL對(duì)象中,query字段不再是一個(gè)字符串,而是一個(gè)經(jīng)過(guò)querystring模塊轉(zhuǎn)換后的參數(shù)對(duì)象。第三個(gè)參數(shù)等于true時(shí),該方法可以正確解析不帶協(xié)議頭的URL,例如//www.example.com/foo/bar。

反過(guò)來(lái),format方法允許將一個(gè)URL對(duì)象轉(zhuǎn)換為URL字符串,示例如下。

代碼如下:

url.format({

protocol: 'http:',

host: 'www.example.com',

pathname: '/p/a/t/h',

search: 'query=string'

});

/* =>

'http://www.example.com/p/a/t/h?query=string'

*/

另外,.resolve方法可以用于拼接URL,示例如下。

代碼如下:

url.resolve('http://www.example.com/foo/bar', '../baz');

/* =>

*/

Query String

querystring模塊用于實(shí)現(xiàn)URL參數(shù)字符串與參數(shù)對(duì)象的互相轉(zhuǎn)換,示例如下。

代碼如下:

querystring.parse('foo=bar&baz=qux&baz=quux&corge');

/* =>

{ foo: 'bar', baz: ['qux', 'quux'], corge: '' }

*/

querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' });

/* =>

'foo=bar&baz=qux&baz=quux&corge='

*/

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

更多信息請(qǐng)查看腳本欄目
易賢網(wǎng)手機(jī)網(wǎng)站地址:nodejs URL模塊操作URL相關(guān)方法介紹
由于各方面情況的不斷調(diào)整與變化,易賢網(wǎng)提供的所有考試信息和咨詢回復(fù)僅供參考,敬請(qǐng)考生以權(quán)威部門公布的正式信息和咨詢?yōu)闇?zhǔn)!

2025國(guó)考·省考課程試聽(tīng)報(bào)名

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