Node.js核心模块querystring

在进行web开发的前端get或post请求发送参数的时候,在后端提取参数进行数据库查询;在Node.js 的V6.10.3版本的文档提供了querstring模块进行参数的解析与提取;详细查看一下querstring的参数API。

1.querystring(查询字符串)
  • querstring模块提供了使用的工具,用于URL的请求参数的解析与提取,它需要引入querstring模块包。
const querystring=require('querystring');
2.querystring模块的API:
  • querystring.escape(str):
    • str (string):需要进行解析的URL查询字符串。
    • querystring.escape()方法对给定url进行百分号编码。
    • querystring.escape()是提供给querystring.stringify()使用的,通常不被直接使用,而是通过给querystring.escape()赋值一个函数来达到重写编码的实现。
  • querystring.parse(str[,sep,eq[,options]]]):
    • str(String):要解析的URL查询字符串。
    • sep(String):用于界定查询字符串中的键值对的子字符串。默认为'&'。
    • eq(string):用于界定查询字符串的键值的子字符串。默认为‘=’。
    • options(object):
      • decodeURIComponent(Function):当解码查询字符串中百分号编码的字符时使用的函数。默认为querystring.unescape().
      • maxKeys(number):指定要解析的键的最大数量。默认为1000.指定为0则移除键数的限制。
    • querystring.parse()方法能把一个URL查询字符串(str)解析成一个键值对的集合。
    • 例子,查询字符串'foo=bar&abc=xyz&abc=123'被解析成:
     foo:'bar',
     abc:['xyz','123']
    
    • 注意,querystring.parse()方法返回的对象不继承自JavaScript的object。这意味着典型的Object方法如obj.toString()、obj.hasOwnProperty()等没有被定义且无法使用。
    • 默认情况下,查询字符串中的百分号编码的字符会被认为使用了UTF-8编码的。如果使用的是另外一种字符编码,则decodeURIComponent选项需要被指定,如以下例子:
//假设gbkDecodeURIComponent函数已经存在
querystring.parse('w=%D6%D0%CE%C4&foo=bar',null,null,{
  decodeURIComponent:gbkDecodeURIComponent
});
  • querystring.stringify(obj[,sep[,eq[,options]]]):
    • obj(obj):要序列化成一个URL查询字符串的对象。
    • sep(string):用于界定查询字符串中的键值对的子字符串。默认为‘&’。
    • eq(string):用于界定查询字符串中的键与值的字符串。默认为“=”。
    • options:
      • encodeURIComponent(Function):当把对URL不安全的字符转换成查询字符串的百分号编码时使用的函数。默认为querystring.escape()。
      • querystring.stringify()方法通过遍历对象自有属性,从一个给定的obj产生一个URL查询字符串。
    querystring.stringify({foo:'bar',baz:['qux','quux'],corge:''});
    //返回'foo=bar&baz=qux&baz=quux&corge='
    querystring.stringify({
      foo:'bar',
      baz:'qux'
    },';',':');
    //返回‘foo:bar&baz:qux’
    
    • 默认情况下,查询字符串中需要百分号编码会作为UTF-8被编码。如果需要的是另一种编码,则encodeURIcomponent选项需要被指定,如下例子:
    //假设gbkEncodeURIComponent函数已经存在
    querystring.stringify({'中文',foo:'bar'},null,null,{
      encodeURIComponet:gbkEncodeURIComponent
    });
    
  • querystring.unescape(str):
    • str(String)
    • querstring.unescape()方法对给定的str上的URL百分号编码的字符进行解码。
    • querystring.unescape()方法是提供querystring.parse()使用的,之所以对外开放,是为了在需要的时候可以通过给querystring.unescape赋值一个函数来重写解码实现。
    • querystring.unescape()方法默认使用JavaScript内置decodeURIComponent()方法来解码。

你可能感兴趣的:(Node.js核心模块querystring)