zoukankan      html  css  js  c++  java
  • nodejs之querystring模块

    这里主要记下querystring模块的使用方法。

    querystring从字面上的意思就是查询字符串,一般是对http请求所带的数据进行解析。querystring模块只提供4个方法,在我看来,这4个方法是相对应的。

    这4个方法分别是querystring.parse和querystring.stringify,querystring.escape和querystring.unescape。
     

    首先,使用querystring模块之前,需要require进来:

    const querystring = require("querystring");

    其次,就可以使用模块下的方法了:

    1 querystring.parse(str,separator,eq,options)

    parse这个方法是将一个字符串反序列化为一个对象。

    参数:str指需要反序列化的字符串;

       separator(可省)指用于分割str这个字符串的字符或字符串,默认值为"&";

       eq(可省)指用于划分键和值的字符或字符串,默认值为"=";

       options(可省)该参数是一个对象,里面可设置maxKeys和decodeURIComponent这两个属性:

          maxKeys:传入一个number类型,指定解析键值对的最大值,默认值为1000,如果设置为0时,则取消解析的数量限制;

          decodeURIComponent:传入一个function,用于对含有%的字符串进行解码,默认值为querystring.unescape。在官方API的例子中,使用gbkDecodeURIComponent这个方法会报错,显示gbkDecodeURIComponent is no defined,这是因为在使用这个gbkDecodeURIComponent这个方法之前需要先进行定义。在API中也写了Assuming gbkDecodeURIComponent function already exists...这句话的意思是”假设这个gbkDecodeURIComponent方法已经存在”。

    例子1,querystring.parse

     1 querystring.parse("name=whitemu&sex=man&sex=women");
     2 /*
     3 return:
     4 { name: 'whitemu', sex: [ 'man', 'women' ] }
     5 */
     6 querystring.parse("name=whitemu#sex=man#sex=women","#",null,{maxKeys:2});
     7 /*
     8 return:
     9 { name: 'whitemu', sex: 'man' }
    10 */

    2 querystring.stringify(obj,separator,eq,options)

    stringify这个方法是将一个对象序列化成一个字符串,与querystring.parse相对。

    参数:obj指需要序列化的对象

       separator(可省)用于连接键值对的字符或字符串,默认值为"&";

       eq(可省)用于连接键和值的字符或字符串,默认值为"=";

       options(可省)传入一个对象,该对象可设置encodeURIComponent这个属性:

          encodeURIComponent:值的类型为function,可以将一个不安全的url字符串转换成百分比的形式,默认值为querystring.escape()。

    例子2,querystring.stringify

    querystring.stringify({name: 'whitemu', sex: [ 'man', 'women' ] });
    /*
    return:
    'name=whitemu&sex=man&sex=women'
    */
    querystring.stringify({name: 'whitemu', sex: [ 'man', 'women' ] },"*","$");
    /*
    return:
    'name$whitemu*sex$man*sex$women'
    */

    3 querystring.escape(str)

    escape可使传入的字符串进行编码

    例子3,querystring.escape

    querystring.escape("name=慕白");
    /*
    return:
    'name%3D%E6%85%95%E7%99%BD'
    */

    4 querystring.unescape(str)

    unescape方法可将含有%的字符串进行解码

    例子4,querystring.unescape

    querystring.unescape('name%3D%E6%85%95%E7%99%BD');
    /*
    return:
    'name=慕白'
    */

    总结:

      querystring这个模块相对的还是比较简单,仅有4个方法。

      querystring.stringify序列化;

      querystring.parse反序列化;

      querystring.escape编码;

      querystring.unescape解码;

    转载:http://www.cnblogs.com/whiteMu/p/5986297.html

    其他

    [我的博客,欢迎交流!](http://rattenking.gitee.io/stone/index.html)

    [我的CSDN博客,欢迎交流!](https://blog.csdn.net/m0_38082783)

    [微信小程序专栏](https://blog.csdn.net/column/details/18335.html)

    [前端笔记专栏](https://blog.csdn.net/column/details/18321.html)

    [微信小程序实现部分高德地图功能的DEMO下载](http://download.csdn.net/download/m0_38082783/10244082)

    [微信小程序实现MUI的部分效果的DEMO下载](http://download.csdn.net/download/m0_38082783/10196944)

    [微信小程序实现MUI的GIT项目地址](https://github.com/Rattenking/WXTUI-DEMO)

    [微信小程序实例列表](http://blog.csdn.net/m0_38082783/article/details/78853722)

    [前端笔记列表](http://blog.csdn.net/m0_38082783/article/details/79208205)

    [游戏列表](http://blog.csdn.net/m0_38082783/article/details/79035621)


     

  • 相关阅读:
    ZZNU 1995: cots' times
    网站后缀名都有哪些
    webstorm运行到服务器(Apache)
    window系统下node.js环境配置
    window系统安装node.js
    网站创建自定义百度地图
    响应式一级到三级导航
    H5插入视频兼容各大浏览器
    phpStudy环境安装
    jquery on和bind
  • 原文地址:https://www.cnblogs.com/linewman/p/9918535.html
Copyright © 2011-2022 走看看