html5中文学习网

您的位置: 首页 > 网站及特效实例 > javascript特效 » 正文

nodejs中转换URL字符串与查询字符串详解_node.js_

[ ] 已经帮助:人解决问题

一个完整的URL字符串中,从"?"(不包括?)到"#"(如果存在#)或者到该URL字符串结束(如果不存在#)的这一部分称为查询字符串.QehHTML5中文学习网 - HTML5先行者学习网

可以使用Query String模块中的parse方法将该字符串转换为一个对象,parse方法的使用方式如下所示:QehHTML5中文学习网 - HTML5先行者学习网

querystring.parse(str,[sep],[eq],[options]);QehHTML5中文学习网 - HTML5先行者学习网

str表示被转换的查询字符串,QehHTML5中文学习网 - HTML5先行者学习网

sep.字符串中的分隔符,默认是&QehHTML5中文学习网 - HTML5先行者学习网

eq.该字符串中的分配符,默认为=."="左边是key,右边是valueQehHTML5中文学习网 - HTML5先行者学习网

options:是一个对象,可以在该对象中使用一个整数值类型的maxKeys属性来指定转换后的对象中的属性个数,如果将maxKeys属性值设定为0.其效果等于不使用maxKeys属性值QehHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
QehHTML5中文学习网 - HTML5先行者学习网
 var querystring=require("querystring");QehHTML5中文学习网 - HTML5先行者学习网
 var str="username=guoyansi&age=40&sex=male";QehHTML5中文学习网 - HTML5先行者学习网
 var res=querystring.parse(str);QehHTML5中文学习网 - HTML5先行者学习网
 console.log("1:%j",res);//1:{"username":"guoyansi","age":"40","sex":"male"}QehHTML5中文学习网 - HTML5先行者学习网
 res=querystring.parse(str,"!");QehHTML5中文学习网 - HTML5先行者学习网
 console.log("2:%j",res);//2:{"username":"guoyansi&age=40&sex=male"}QehHTML5中文学习网 - HTML5先行者学习网
 res=querystring.parse(str,"&");QehHTML5中文学习网 - HTML5先行者学习网
 console.log("3:%j",res);//3:{"username":"guoyansi","age":"40","sex":"male"}QehHTML5中文学习网 - HTML5先行者学习网
 str="username=guoyansi!age=40!sex=male";QehHTML5中文学习网 - HTML5先行者学习网
 res=querystring.parse(str,"!");QehHTML5中文学习网 - HTML5先行者学习网
 console.log("4:%j",res);//4:{"username":"guoyansi","age":"40","sex":"male"}QehHTML5中文学习网 - HTML5先行者学习网
 res=querystring.parse(str,"!","=");QehHTML5中文学习网 - HTML5先行者学习网
 console.log("5:%j",res);//5:{"username":"guoyansi","age":"40","sex":"male"}QehHTML5中文学习网 - HTML5先行者学习网
 res=querystring.parse(str,"!",":");QehHTML5中文学习网 - HTML5先行者学习网
 console.log("6:%j",res);//6:{"username=guoyansi":"","age=40":"","sex=male":""}QehHTML5中文学习网 - HTML5先行者学习网
 res=querystring.parse(str,"!","=",{maxKeys:2});QehHTML5中文学习网 - HTML5先行者学习网
 console.log("7:%j",res);//7:{"username":"guoyansi","age":"40"}QehHTML5中文学习网 - HTML5先行者学习网
QehHTML5中文学习网 - HTML5先行者学习网

stringify是将字符串转化成查询字符串的格式.QehHTML5中文学习网 - HTML5先行者学习网

querystring.stringify(obj,[sep],[eq])QehHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
QehHTML5中文学习网 - HTML5先行者学习网
 var querystring=require("querystring");QehHTML5中文学习网 - HTML5先行者学习网
 var res= querystring.stringify({"username":"guoyansi","age":"40","sex":"male"});QehHTML5中文学习网 - HTML5先行者学习网
 console.log(res);//username=guoyansi&age=40&sex=maleQehHTML5中文学习网 - HTML5先行者学习网
 res=querystring.stringify({"username":"guoyansi","age":"40","sex":"male"},"!");QehHTML5中文学习网 - HTML5先行者学习网
 console.log(res);//username=guoyansi!age=40!sex=maleQehHTML5中文学习网 - HTML5先行者学习网
 res=querystring.stringify({"username":"guoyansi","age":"40","sex":"male"},"&",":");QehHTML5中文学习网 - HTML5先行者学习网
 console.log(res);//username:guoyansi&age:40&sex:maleQehHTML5中文学习网 - HTML5先行者学习网
 res=querystring.stringify({"username":"guoyansi","age":["40","24"]},"&","=");QehHTML5中文学习网 - HTML5先行者学习网
 console.log(res);//username=guoyansi&age=40&age=24QehHTML5中文学习网 - HTML5先行者学习网
QehHTML5中文学习网 - HTML5先行者学习网

在url模块中,可以使用parse()方法将URL字符串转换为一个对象,根据URL字符串中的不同内容,该对象可能具有的属性及其含义如下.QehHTML5中文学习网 - HTML5先行者学习网

href:被转换的原URL字符串.QehHTML5中文学习网 - HTML5先行者学习网
protocol:客户端发出请求时使用的协议.QehHTML5中文学习网 - HTML5先行者学习网
slashes:在协议与路径中间时候使用"//"分隔符.QehHTML5中文学习网 - HTML5先行者学习网
host:URL字符串中的完整地址及端口号,该地址可能为一个IP地址,也可能为一个主机名.QehHTML5中文学习网 - HTML5先行者学习网
auth:URL字符串中的认证信息部分.QehHTML5中文学习网 - HTML5先行者学习网
hostname:URL字符串中的完整地址,该地址可能为一个IP地址,也可能为一个主机名.QehHTML5中文学习网 - HTML5先行者学习网
search:Url字符串中的查询字符串,包含起始字符"?"QehHTML5中文学习网 - HTML5先行者学习网
path:url字符串中的路径,包含查询字符串.QehHTML5中文学习网 - HTML5先行者学习网
query:url字符串中的查询字符串,不包含起始字符"?",或根据该查询字符串而转换的对象(根据parse()方法所用参数而决定query属性值);QehHTML5中文学习网 - HTML5先行者学习网
hash:url字符串中的散列字符串,包含起始字符"#".QehHTML5中文学习网 - HTML5先行者学习网
 QehHTML5中文学习网 - HTML5先行者学习网
url.parse(urlstr,[parseQueryString]);QehHTML5中文学习网 - HTML5先行者学习网
urlStr:是需要转换的URL字符串,QehHTML5中文学习网 - HTML5先行者学习网
parseQueryString:是一个布尔值,当参数为true时,内部使用querystring模块查询字符串转换为一个对象,参数值为false时不执行该转换操作,默认是falseQehHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
QehHTML5中文学习网 - HTML5先行者学习网
 var url=require("url");QehHTML5中文学习网 - HTML5先行者学习网
 var str="http://user:pass@host,com:8080/users/user.php?username=sisi&age=24&sex=male#name1";QehHTML5中文学习网 - HTML5先行者学习网
 var res=url.parse(str);QehHTML5中文学习网 - HTML5先行者学习网
 console.log(res);QehHTML5中文学习网 - HTML5先行者学习网
QehHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
QehHTML5中文学习网 - HTML5先行者学习网
{ protocol: 'http:',QehHTML5中文学习网 - HTML5先行者学习网
  slashes: true,QehHTML5中文学习网 - HTML5先行者学习网
  auth: 'user:pass',QehHTML5中文学习网 - HTML5先行者学习网
  host: 'host:8080',QehHTML5中文学习网 - HTML5先行者学习网
  port: '8080',QehHTML5中文学习网 - HTML5先行者学习网
  hostname: 'host',QehHTML5中文学习网 - HTML5先行者学习网
  hash: '#name1',QehHTML5中文学习网 - HTML5先行者学习网
  search: '?username=sisi&age=24&sex=male',QehHTML5中文学习网 - HTML5先行者学习网
  query: 'username=sisi&age=24&sex=male',QehHTML5中文学习网 - HTML5先行者学习网
  pathname: '/,com/users/user.php',QehHTML5中文学习网 - HTML5先行者学习网
  path: '/,com/users/user.php?username=sisi&age=24&sex=male',QehHTML5中文学习网 - HTML5先行者学习网
  href: 'http://user:pass@host:8080/,com/users/user.php?username=sisi&age=24&sex=male#name1' }QehHTML5中文学习网 - HTML5先行者学习网
QehHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
QehHTML5中文学习网 - HTML5先行者学习网
 var url=require("url");QehHTML5中文学习网 - HTML5先行者学习网
 var str="http://user:pass@host,com:8080/users/user.php?username=sisi&age=24&sex=male#name1";QehHTML5中文学习网 - HTML5先行者学习网
 var res=url.parse(str,true);QehHTML5中文学习网 - HTML5先行者学习网
 console.log(res);QehHTML5中文学习网 - HTML5先行者学习网
QehHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
QehHTML5中文学习网 - HTML5先行者学习网
{ protocol: 'http:',QehHTML5中文学习网 - HTML5先行者学习网
  slashes: true,QehHTML5中文学习网 - HTML5先行者学习网
  auth: 'user:pass',QehHTML5中文学习网 - HTML5先行者学习网
  host: 'host:8080',QehHTML5中文学习网 - HTML5先行者学习网
  port: '8080',QehHTML5中文学习网 - HTML5先行者学习网
  hostname: 'host',QehHTML5中文学习网 - HTML5先行者学习网
  hash: '#name1',QehHTML5中文学习网 - HTML5先行者学习网
  search: '?username=sisi&age=24&sex=male',QehHTML5中文学习网 - HTML5先行者学习网
  query: { username: 'sisi', age: '24', sex: 'male' },QehHTML5中文学习网 - HTML5先行者学习网
  pathname: '/,com/users/user.php',QehHTML5中文学习网 - HTML5先行者学习网
  path: '/,com/users/user.php?username=sisi&age=24&sex=male',QehHTML5中文学习网 - HTML5先行者学习网
  href: 'http://user:pass@host:8080/,com/users/user.php?username=sisi&age=24&sex=male#name1' }QehHTML5中文学习网 - HTML5先行者学习网
QehHTML5中文学习网 - HTML5先行者学习网

第一个例子和第二个例子不同之处在于parse的第二个参数,导致了结果中的query的不同QehHTML5中文学习网 - HTML5先行者学习网

可以将一个url转换过的对象转换成一个url字符串.QehHTML5中文学习网 - HTML5先行者学习网

复制代码 代码如下:
QehHTML5中文学习网 - HTML5先行者学习网
 var url=require("url");QehHTML5中文学习网 - HTML5先行者学习网
 var str="http://user:pass@host,com:8080/users/user.php?username=sisi&age=24&sex=male#name1";QehHTML5中文学习网 - HTML5先行者学习网
 var res=url.parse(str,true);QehHTML5中文学习网 - HTML5先行者学习网
 console.log(url.format(res));QehHTML5中文学习网 - HTML5先行者学习网
QehHTML5中文学习网 - HTML5先行者学习网

结果是:QehHTML5中文学习网 - HTML5先行者学习网

http://user:pass@host:8080/,com/users/user.php?username=sisi&age=24&sex=male#name1QehHTML5中文学习网 - HTML5先行者学习网

以上就是node中转换URL字符串与查询字符串的全部内容了,好好研究下,其实挺简单的。QehHTML5中文学习网 - HTML5先行者学习网

(责任编辑:)
推荐书籍
推荐资讯
关于HTML5先行者 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 人才招聘 - 帮助