• 一头扎进Node(二)


    简介

    该模块用与处理我们URL中的查询字符串参数,可以对一个url的query进行解析与反序列化,而且还提供了方法对参数进行编码转换!  

    使用方法

    var querystring = require('querystring');

    API 使用说明

    querystring.escape()

    querystring.escape(str);//str:需要编码的字符串
    

    案例代码如下:

    var querystring = require('querystring');
    
    var str = "name=名字";
    var queryObj = querystring.escape(str);
    console.info(queryObj); //name%3D%E5%90%8D%E5%AD%97
    

    querystring.unescape()

    querystring.unescape(str);//str:需要进行反编码的字符串
    

    案例代码如下:

    var querystring = require('querystring');
    
    var str = "name%3D%E5%90%8D%E5%AD%97";
    var queryObj = querystring.unescape(str);
    console.info(queryObj);//name=名字
    

    querystring.parse()

    querystring.parse(str[, sep][, eq][, options]);
    //str:需要解析的query字符串
    //sep:各个参数的分隔符,默认为“&”
    //eq:参数名称与参数值得分隔符,默认为“=”
    //options:对象类型,用于解析或者反序列化的配置,例如decodeURIComponent、encodeURIComponent
    

    案例代码如下:

    var querystring = require('querystring');
    
    var str1 = 'foo=bar&baz=qux&baz=quux&corge=';
    var str2 = 'foo=bar,baz=qux,baz=quux,corge=';
    var str3 = 'foo:bar,baz:qux,baz:quux,corge:';
    var queryObj1 = querystring.parse(str1);
    var queryObj2 = querystring.parse(str2);
    var queryObj3 = querystring.parse(str3);
    console.info(queryObj1); //{ foo: 'bar', baz: [ 'qux', 'quux' ], corge: '' }
    console.info(queryObj2); //{ foo: 'bar,baz=qux,baz=quux,corge=' }
    console.info(queryObj3); //{ 'foo:bar,baz:qux,baz:quux,corge:': '' }
    
    queryObj2 = querystring.parse(str2, ',');
    console.info(queryObj2); //{ foo: 'bar', baz: [ 'qux', 'quux' ], corge: '' }
    
    queryObj3 = querystring.parse(str3, ',', ':');
    console.info(queryObj3); //{ foo: 'bar', baz: [ 'qux', 'quux' ], corge: '' }
    
    var str4 = 'name%3D%E5%90%8D%E5%AD%97&foo=bar';
    queryObj4 = querystring.parse(str4, null, null, {
        decodeURIComponent: querystring.unescape
    });
    console.info(queryObj4); //{ foo: 'bar', baz: [ 'qux', 'quux' ], corge: '' ,name:'名字'}
    

    querystring.stringify()

    querystring.stringify(obj[, sep][, eq][, options])
    
    //obj:一个query对象
    //sep:用于参数之间的分隔符
    //eq:用于参数名称与参数值之间的分隔符
    //options:用于反序列化时的配置
    

    案例代码如下:

    var querystring = require('querystring');
    
    var queryObj = { foo: 'bar', baz: ['qux', 'quux'], corge: '', name: '名字' };
    
    var str = querystring.stringify(queryObj);
    console.info(str); //foo=bar&baz=qux&baz=quux&corge=&name=%E5%90%8D%E5%AD%97
    
    str = querystring.stringify(queryObj, ',');
    console.info(str); //foo=bar,baz=qux,baz=quux,corge=,name=%E5%90%8D%E5%AD%97
    
    str = querystring.stringify(queryObj, ',', ':');
    console.info(str); //foo:bar,baz:qux,baz:quux,corge:,name:%E5%90%8D%E5%AD%97
    
    str = querystring.stringify(queryObj, ',', ':', {
        encodeURIComponent: querystring.escape
    });//foo:bar,baz:qux,baz:quux,corge:,name:%E5%90%8D%E5%AD%97
    
    console.info(str);
    
  • 相关阅读:
    面向对象的测试用例设计有几种方法?如何实现?
    html5直接调用手机相机照相/录像
    关于ionic2在IOS上点击延迟的问题
    vue项目使用html5+ barcode扫码在苹果遇到的问题以及自己的解决方法
    vue设置多个入口
    把项目中的vant UI组件升级
    记录axios在IOS上不能发送的问题
    getElementsByClassName兼容 封装
    记录vue用 html5+做移动APP 用barcode做扫一扫功能时安卓 的bug(黑屏、错位等等)和解决方法
    JS的事件委托
  • 原文地址:https://www.cnblogs.com/mangoniki/p/5833808.html
Copyright © 2020-2023  润新知