Node.js模块学习——Url

url模块

该模块允许解析URL、生成URL,以及拼接URL。

url.parse()

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

urlStr为要解析的url字符串;parseQueryString参数等于true时,该方法返回的URL对象中,query字段不再是一个字符串,而是一个经过querystring模块转换后的参数对象;slashesDenoteHost参数等于true时,该方法可以正确解析不带协议头的URL
url.parse()方法用于解析URL对象,解析后返回一个JSON对象。

var url = require('url');
var urlStr = 'http://user:[email protected]:8080/p/a/t/h?query=string#hash'
url.parse(urlStr);
/*
 { 
  protocol: 'http:',  
  auth: 'user:pass',  
  host: 'host.com:8080',  
  port: '8080',  
  hostname: 'host.com',  
  hash: '#hash',  
  search: '?query=string',  
  query: 'query=string', 
  pathname: '/p/a/t/h',  
  path: '/p/a/t/h?query=string',  
  href: 'http://user:[email protected]:8080/p/a/t/h?query=string#hash'
 }
*/

参数说明

protocol: 请求协议
host: URL主机名已全部转换成小写, 包括端口信息
auth:URL中身份验证信息部分
hostname:主机的主机名部分, 已转换成小写
port: 主机的端口号部分
pathname: URL的路径部分,位于主机名之后请求查询之前
search: URL 的“查询字符串”部分,包括开头的问号。
path: pathname 和 search 连在一起。
query: 查询字符串中的参数部分(问号后面部分字符串),或者使用 querystring.parse() 解析后返回的对象。
hash: URL 的 “#” 后面部分(包括 # 符号)

url.format()

将一个URL对象转换为URL字符串

url.format({   
  protocol: 'http:',   
  host: 'www.example.com',    
  pathname: '/p/a/t/h',    
  search: 'query=string'
});
/*
'http://www.example.com/p/a/t/h?query=string'
*/

url.resolve()

可以用于拼接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'

url解析图例

                        url.parse(string).query
                                           |
           url.parse(string).pathname      |
                       |                   |
                       |                   |
                     ------ -------------------
http://localhost:8888/start?foo=bar&hello=world

你可能感兴趣的:(Node.js模块学习——Url)