url 包提供了三個(gè)方法
假設(shè)url字符串為:'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'
一、url.parse(urlStr, [parseQueryString], [slashesDenoteHost])
按url規(guī)則拆解urlStr字符串,接收三個(gè)參數(shù)
- urlStr, url字符串(必傳)
- parseQueryString, bool類型, 默認(rèn)值false。 對(duì)url中query部分解析后輸出格式的選擇, true的話輸出格式由默認(rèn)的 'query=string' 轉(zhuǎn)為對(duì)象格式{ query: 'string' }
- slashesDenoteHost, bool類型, 默認(rèn)值false。
parse解析獲取的對(duì)象的結(jié)構(gòu),這個(gè)對(duì)認(rèn)識(shí)url的組成也是極好的:
href: The full URL that was originally parsed. Both the protocol and host are lowercased.
Example: 'http://user:pass@host.com:8080/p/a/t/h?query=string#hash'
protocol: The request protocol, lowercased.
Example: 'http:'
slashes: The protocol requires slashes after the colon
Example: true or false
host: The full lowercased host portion of the URL, including port information.
Example: 'host.com:8080'
auth: The authentication information portion of a URL.
Example: 'user:pass'
hostname: Just the lowercased hostname portion of the host.
Example: 'host.com'
port: The port number portion of the host.
Example: '8080'
pathname: The path section of the URL, that comes after the host and before the query, including the initial slash if present.
Example: '/p/a/t/h'
search: The 'query string' portion of the URL, including the leading question mark.
Example: '?query=string'
path: Concatenation of pathname and search.
Example: '/p/a/t/h?query=string'
query: Either the 'params' portion of the query string, or a querystring-parsed object.
Example: 'query=string' or {'query':'string'}
hash: The 'fragment' portion of the URL including the pound-sign.
Example: '#hash'
二、 url.format(urlObj)
parse的反用,將對(duì)象解析成url字符串
三、 url.resolve(from, to)
為URL或 href 插入 或 替換原有的標(biāo)簽
var url = require('url');
var a = url.resolve('/one/two/three', 'four') ,
b = url.resolve('http://example.com/', '/one'),
c = url.resolve('http://example.com/one', '/two');
console.log(a +","+ b +","+ c);
//輸出結(jié)果:
///one/two/four
//http://example.com/one
//http://example.com/two