美文网首页
Node.js核心模块querystring

Node.js核心模块querystring

作者: Evtion | 来源:发表于2017-05-21 21:29 被阅读0次

    在进行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

          本文链接:https://www.haomeiwen.com/subject/cqsvxxtx.html