万达换票券 发表于 2017-2-24 12:55:53

Node基础:url查询参数解析之querystring

模块概述
  在nodejs中,提供了querystring这个模块,用来做url查询参数的解析,使用非常简单。
  模块总共有四个方法,绝大部分时,我们只会用到 .parse()、 .stringify()两个方法。剩余的方法,感兴趣的同学可自行查看文档。


[*].parse():对url查询参数(字符串)进行解析,生成易于分析的json格式。
[*].stringif():跟.parse()相反,用于拼接查询查询。
querystring.parse(str[, sep[, eq[, options]]])  
querystring.stringify(obj[, sep[, eq[, options]]])

查询参数解析:querystring.parse()

  参数:querystring.parse(str[, sep[, eq[, options]]])

  第四个参数几乎不会用到,直接不讨论. 第二个, 第三个其实也很少用到,但某些时候还是可以用一下。直接看例子
var querystring = require('querystring');  
var str = 'nick=casper&age=24';
  
var obj = querystring.parse(str);
  
console.log(JSON.stringify(obj, null, 4));
  输出如下
{  "nick": "casper",
  "age": "24"
  
}
  再来看下sep、eq有什么作用。相当于可以替换&、=为自定义字符,对于下面的场景来说还是挺省事的。
var str1 = 'nick=casper&age=24&extra=name-chyingp|country-cn';  
var obj1 = querystring.parse(str1);
  
var obj2 = querystring.parse(obj1.extra, '|', '-');
  
console.log(JSON.stringify(obj2, null, 4));
  输出如下
{  "name": "chyingp",
  "country": "cn"
  
}

查询参数拼接:querystring.stringify()

  querystring.stringify(obj[, sep[, eq[, options]]])

  没什么好说的,相当于parse的逆向操作。直接看代码
var querystring = require('querystring');  

  
var obj1 = {
  "nick": "casper",
  "age": "24"
  
};
  
var str1 = querystring.stringify(obj1);
  
console.log(str1);
  

  
var obj2 = {
  "name": "chyingp",
  "country": "cn"
  
};
  
var str2 = querystring.stringify(obj2, '|', '-');
  
console.log(str2);
  输出如下
nick=casper&age=24  
name-chyingp|country-cn

相关链接
  官方文档:https://nodejs.org/api/querystring.html
  
页: [1]
查看完整版本: Node基础:url查询参数解析之querystring