Nodejs之Url模块&QueryString模块
Url模块
url.parse(urlStr, [parseQueryString], [slashesDenoteHost])
将URL字符串转换为对象。有3个参数:
- urlStr: url字符串。
- parseQueryString:可选。设置为true时,会使用querystring模块来解析URL中德查询字符串部分,默认为 false。
- slashesDenoteHost:可选。默认为false,//foo/bar 形式的字符串将被解释成 { pathname: ‘//foo/bar’ };
如果设置成true,//foo/bar 形式的字符串将被解释成 { host: ‘foo’, pathname: ‘/bar’ }。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15url.parse('http://www.jb51.net/article/61637.htm')
//结果
url {
protocol: 'http:',
slashes: true,
auth: null,
host: 'www.jb51.net',
port: null,
hostname: 'www.jb51.net',
hash: null,
search: null,
query: null,
pathname: '/article/61637.htm',
path: '/article/61637.htm',
href: 'http://www.jb51.net/article/61637.htm' }url.format(urlObj)
将对象格式化为URL字符串,与url.parse()方法刚好相反。只有1个参数——urlObj,表示 URL对象。
下面代码会将一串对象格式化为URL字符串:1
2
3url.format({protocol: 'http:',slashes: true,auth: null,host: 'www.jb51.net',port: null,hostname: 'www.jb51.net',hash: null,search: null,query: null, pathname: '/article/61637.htm',path: '/article/61637.htm',href:'http://www.jb51.net/article/61637.htm'})
//结果
'http://www.jb51.net/article/61637.htm'url.resolve(from, to)
为URL或 href 插入或替换原有的标签。有2个参数: - from:源地址。
- to:需要添加或替换的标签。
1
2
3
4
5
6
7
8
9
10
11url.resolve('/one/two','three')
//结果
'/one/three'
url.resolve('http://example.com','two')
//结果
'http://example.com/two'
url.resolve('http://example.com/two','three')
//结果
'http://example.com/three'
QueryString模块
querystring.stringify(obj, [sep], [eq])
将对象转换成字符串,字符串里多个参数将用 ‘&’ 分隔,将用 ‘=’ 赋值。有3个参数:
- obj: 欲转换的对象。
- sep:可选。设置分隔符,默认为 ‘&’。
- eq:可选。设置赋值符,默认为 ‘=’。
1
2
3
4
5
6
7querystring.stringify({name:'rose',sex:'girl'})
//结果
'name=rose&sex=girl'
querystring.stringify({name:'rose',sex:'girl'},';',':')//用分号分隔,用冒 号赋值
//结果
'name:rose;sex:girl'querystring.parse(str, [sep], [eq], [options])
与querystring.stringify()刚好相反,将字符串转换成对象。有4个参数: - str:欲转换的字符串。
- sep:可选。设置分隔符,默认为 ‘&’。
- eq:可选。设置赋值符,默认为 ‘=’。
- options:maxKeys可接受字符串的最大长度,默认为1000,如果将其设置为0则表示没这个限制。
1
2
3querystring.parse('name=rose&sex=girl')
//结果
{ name: 'rose', sex: 'girl' }querystring.escape()
转义。将传入的字符串进行编码返回相应的编码串。1
2
3querystring.escape('<哈哈>')
//结果
'%3C%E5%93%88%E5%93%88%3E'querystring.unescape()
反转义。将传入的编码字符串反转回原始字符串。1
2
3querystring.unescape('%3C%E5%93%88%E5%93%88%3E')
//结果
'<哈哈>'