IO.js URL

2018-11-28 22:36 更新

穩(wěn)定度: 2 - 穩(wěn)定

這個(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'

  • href: 最初傳遞的全部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)后有斜杠。

例子: truefalse

  • host: URL的所有主機(jī)部分,包括端口,小寫。

例子: 'host.com:8080'

  • auth: URL的認(rèn)證信息部分。

例子: 'user:pass'

  • hostname: 小寫的主機(jī)名部分。

例子: 'host.com'

  • port: 主機(jī)部分的端口號(hào)。

例子: '8080'

  • pathname: URL的路徑部分,在主機(jī)之后,在查詢之前,包括最前面的斜杠,如果存在的話。不提供解碼。

例子: '/p/a/t/h'

  • search: URL的“查詢字符串”部分,包括前導(dǎo)的問號(hào)標(biāo)志。

例子: '?query=string'

  • path: 路徑和查詢的連接體。不提供解碼。

例子: '/p/a/t/h?query=string'

  • query: 查詢字符串的“參數(shù)”部分,或查詢字符串被解釋后的對(duì)象。

例子: 'query=string'{'query':'string'}

  • hash: URL的“碎片”部分,包括英鎊符號(hào)。

例子: '#hash'

以下是URL模塊提供的方法:

url.parse(urlStr[, parseQueryString][, slashesDenoteHost])

接收一個(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。

url.format(urlObj)

接受一個(gè)解釋完畢的URL對(duì)象,返回格式化URL字符串。

以下是格式化過程:

  • href將會(huì)被忽略。
  • path將會(huì)被忽略。
  • 協(xié)議無論是否有末尾的冒號(hào),都會(huì)被同樣處理。

  • http,https,ftp,gopher,file協(xié)議的后綴是://。
  • 所有其他如mailto,xmpp,aim,sftp,foo等協(xié)議的后綴是:。

  • 如果協(xié)議要求有 ://slashes會(huì)被設(shè)置為true

  • 只有之前沒有列出的要求有斜線的協(xié)議才需要被設(shè)置。如mongodb://localhost:8000/。

  • auth會(huì)被使用,如果存在的話。
  • 只有當(dāng)缺少host時(shí),才會(huì)使用hostname。
  • 只有當(dāng)缺少host時(shí),才會(huì)使用port。
  • host將會(huì)替代hostnameport。
  • 無論有沒有前導(dǎo) / (斜線),pathname都會(huì)被相同對(duì)待。
  • 只有在缺少search時(shí),才會(huì)使用query(對(duì)象;參閱querystring)。
  • search將會(huì)替代query

  • 無論有沒有前導(dǎo) ?(問號(hào)),它都會(huì)被相同對(duì)待。

  • 無論有沒有前導(dǎo) #(英鎊符號(hào)),hash都會(huì)被相同對(duì)待。

url.resolve(from, to)

接受一個(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'
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)