这个模块提供了URL解析和解释的工具。通过require('url')
使用它。
解释URL为一个含有以下部分或全部属性的对象,依赖于它们是否在URL字符串中存在。任何不存在的部分都不会出现在解释后的对象中。一个下面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模块提供的方法:
接收一个URL字符串,然后返回一个对象。
对第二个参数传递true
,将使用querystring
模块来解释查询字符串。如果为true
,那么最后的对象中一定存在query
属性,并且search
属性将总是一个字符串(可能为空)。如果为false
,那么query
属性将不会被解释或解码。默认为false
。
对第三个参数传递true
,将会把//foo/bar
解释为{ host: 'foo', pathname: '/bar' }
,而不是{ pathname: '//foo/bar' }
。默认为false
。
接受一个解释完毕的URL对象,返回格式化URL字符串。
以下是格式化过程:
href
将会被忽略。path
将会被忽略。协议无论是否有末尾的冒号,都会被同样处理。
://
。所有其他如mailto,xmpp,aim,sftp,foo等协议的后缀是:
。
如果协议要求有 ://
,slashes
会被设置为true
只有之前没有列出的要求有斜线的协议才需要被设置。如mongodb://localhost:8000/
。
auth
会被使用,如果存在的话。host
时,才会使用hostname
。host
时,才会使用port
。host
将会替代hostname
和port
。pathname
都会被相同对待。search
时,才会使用query
(对象;参阅querystring
)。search
将会替代query
无论有没有前导 ?(问号),它都会被相同对待。
hash
都会被相同对待。接受一个基础URL,和一个路径URL,并且带上锚点像浏览器一样解析他们。例子:
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'