穩(wěn)定性: 3 - 穩(wěn)定
這個(gè)模塊包含分析和解析 URL 的工具。調(diào)用 require('url') 來訪問模塊。
解析 URL 對(duì)象有以下內(nèi)容,依賴于他們是否在 URL 字符串里存在。任何不在 URL 字符串里的部分,都不會(huì)出現(xiàn)在解析對(duì)象里。例子如下:
'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'
href: 準(zhǔn)備解析的完整的 URL,包含協(xié)議和主機(jī)(小寫)。
例子: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'
protocol: 請(qǐng)求協(xié)議, 小寫.
例子: 'http:'
slashes: 協(xié)議要求的斜杠(冒號(hào)后)
例子: true 或 false
host: 完整的 URL 小寫 主機(jī)部分,包含端口信息。
例子: 'host.com:8080'
auth: url 中的驗(yàn)證信息。
例子: 'user:pass'
hostname: 域名中的小寫主機(jī)名
例子: 'host.com'
port: 主機(jī)的端口號(hào)
例子: '8080'
pathname: URL 中的路徑部分,在主機(jī)名后,查詢字符前,包含第一個(gè)斜杠。
例子: '/p/a/t/h'
search: URL 中得查詢字符串,包含開頭的問號(hào)
例子: '?query=string'
path: pathname 和 search 連在一起
例子: '/p/a/t/h?query=string'
query: 查詢字符串中得參數(shù)部分,或者使用 querystring.parse() 解析后返回的對(duì)象。
例子: 'query=string' or {'query':'string'}
hash: URL 的 “#” 后面部分(包括 # 符號(hào))
例子: '#hash'
URL 模塊提供了以下方法:
輸入 URL 字符串,返回一個(gè)對(duì)象。
第二個(gè)參數(shù)為 true 時(shí),使用 querystring 來解析查詢字符串。如果為 true,query 屬性將會(huì)一直賦值為對(duì)象,并且 search 屬性將會(huì)一直是字符串(可能為空)。默認(rèn)為 false。
第三個(gè)參數(shù)為true ,把 //foo/bar 當(dāng)做{ host: 'foo', pathname: '/bar' } ,而不是{ pathname: '//foo/bar' }。默認(rèn)為 false。
輸入一個(gè)解析過的 URL 對(duì)象,返回格式化過的字符串。
格式化的工作流程:
href 會(huì)被忽略protocol 無論是否有末尾的 : (冒號(hào)),會(huì)同樣的處理
http, https, ftp, gopher, file 協(xié)議會(huì)被添加后綴:// mailto, xmpp, aim, sftp, foo, 等協(xié)議添加后綴:slashes 如果協(xié)議需要 ://,設(shè)置為 true
mongodb://localhost:8000/auth 如果出現(xiàn)將會(huì)使用.hostname 僅在缺少 host 時(shí)使用port 僅在缺少 host 時(shí)使用host 用來替換 hostname 和 portpathname 無論結(jié)尾是否有 / 將會(huì)同樣處理search 將會(huì)替代 query屬性
query (對(duì)象; 參見 querystring) 如果沒有 search,將會(huì)使用hash 無論前面是否有#,都會(huì)同樣處理給一個(gè)基礎(chǔ) URL, href URL,如同瀏覽器一樣的解析它們可以帶上錨點(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'