這個(gè)模塊提供了URL解析和解釋的工具。通過require('url')
使用它。
解釋URL為一個(gè)含有以下部分或全部屬性的對(duì)象,依賴于它們是否在URL字符串中存在。任何不存在的部分都不會(huì)出現(xiàn)在解釋后的對(duì)象中。一個(gè)下面URL的例子:
'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'
例子: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'
例子: 'http:'
例子: true
或 false
例子: 'host.com:8080'
例子: 'user:pass'
例子: 'host.com'
例子: '8080'
例子: '/p/a/t/h'
例子: '?query=string'
例子: '/p/a/t/h?query=string'
例子: 'query=string'
或 {'query':'string'}
例子: '#hash'
以下是URL模塊提供的方法:
接收一個(gè)URL字符串,然后返回一個(gè)對(duì)象。
對(duì)第二個(gè)參數(shù)傳遞true
,將使用querystring
模塊來解釋查詢字符串。如果為true
,那么最后的對(duì)象中一定存在query
屬性,并且search
屬性將總是一個(gè)字符串(可能為空)。如果為false
,那么query
屬性將不會(huì)被解釋或解碼。默認(rèn)為false
。
對(duì)第三個(gè)參數(shù)傳遞true
,將會(huì)把//foo/bar
解釋為{ host: 'foo', pathname: '/bar' }
,而不是{ pathname: '//foo/bar' }
。默認(rèn)為false
。
接受一個(gè)解釋完畢的URL對(duì)象,返回格式化URL字符串。
以下是格式化過程:
href
將會(huì)被忽略。path
將會(huì)被忽略。協(xié)議無論是否有末尾的冒號(hào),都會(huì)被同樣處理。
://
。所有其他如mailto,xmpp,aim,sftp,foo等協(xié)議的后綴是:
。
如果協(xié)議要求有 ://
,slashes
會(huì)被設(shè)置為true
只有之前沒有列出的要求有斜線的協(xié)議才需要被設(shè)置。如mongodb://localhost:8000/
。
auth
會(huì)被使用,如果存在的話。host
時(shí),才會(huì)使用hostname
。host
時(shí),才會(huì)使用port
。host
將會(huì)替代hostname
和port
。pathname
都會(huì)被相同對(duì)待。search
時(shí),才會(huì)使用query
(對(duì)象;參閱querystring
)。search
將會(huì)替代query
無論有沒有前導(dǎo) ?(問號(hào)),它都會(huì)被相同對(duì)待。
hash
都會(huì)被相同對(duì)待。接受一個(gè)基礎(chǔ)URL,和一個(gè)路徑URL,并且?guī)襄^點(diǎn)像瀏覽器一樣解析他們。例子:
url.resolve('/one/two/three', 'four') // '/one/two/four'
url.resolve('http://example.com/', '/one') // 'http://example.com/one'
url.resolve('http://example.com/one', '/two') // 'http://example.com/two'
更多建議: