URL字符串与查询字符串
- 查询字符串:从“?”到“#”,或者到URL结束(如果不存在#)的URL子串称为查询字符串。-
- 使用querystring模块
var querystring = require('querystring');
var querystr = querystring.stringify({
name:"sysuygm",
padd:"sysuygm"
});
var querystr1 = querystring.parse("name=sysuygm&padd=sysuygm")
- URL对象
- 使用url模块
var url = require('url');
console.log(url.parse(req.url));
解析的结果
> url.parse('http://sysuygm:sysupass@user.com:8080/api/users/1/id?
username=sysuygm&uid=123455#name1');
Url {
protocol: 'http:',
slashes: true,
auth: 'sysuygm:sysupass', //URL认证信息部分
host: 'user.com:8080',
port: '8080',
hostname: 'user.com',
hash: '#name1',
search: '?username=sysuygm&uid=123455',
query: 'username=sysuygm&uid=123455',
pathname: '/api/users/1/id',
path: '/api/users/1/id?username=sysuygm&uid=123455',
href: 'http://sysuygm:sysupass@user.com:8080/api/users/1/id?username=sysuygm&uid=123455#name1'
}
> url.parse('http://sysuygm:sysupass@user.com:8080/api/users/1/id?
username=sysuygm&uid=123455#name1',true); //格式化query部分,换成对象格式
Url {
protocol: 'http:',
slashes: true,
auth: 'sysuygm:sysupass',
host: 'user.com:8080',
port: '8080',
hostname: 'user.com',
hash: '#name1',
search: '?username=sysuygm&uid=123455',
query: { username: 'sysuygm', uid: '123455' },
pathname: '/api/users/1/id',
path: '/api/users/1/id?username=sysuygm&uid=123455',
href: 'http://sysuygm:sysupass@user.com:8080/api/users/1/id?username=sysuygm&uid=123455#name1'
}
格式化
> obj = url.parse('http://sysuygm:sysupass@user.com:8080/api/users/1/id?
username=sysuygm&uid=123455#name1',true);
Url {
protocol: 'http:',
slashes: true,
auth: 'sysuygm:sysupass',
host: 'user.com:8080',
port: '8080',
hostname: 'user.com',
hash: '#name1',
search: '?username=sysuygm&uid=123455',
query: { username: 'sysuygm', uid: '123455' },
pathname: '/api/users/1/id',
path: '/api/users/1/id?username=sysuygm&uid=123455',
href: 'http://sysuygm:sysupass@user.com:8080/api/users/1/id?username=sysuygm&uid=123455#name1' }
> url.format(obj)
'http://sysuygm:sysupass@user.com:8080/api/users/1/id?username=sysuygm&uid=123455#name1'
>
- url.resolve(form, to) 路径结合