node.js入门教程之querystring模块的使用方法

 更新时间:2017年02月27日 11:38:57   转载 作者:whiteMu  
querystring模块主要用来解析查询字符串,下面这篇文章主要介绍了关于node.js中querystring模块使用方法的相关资料,需要的朋友可以参考借鉴,下面来一起看看吧。

querystring模块

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

这4个方法分别是querystring.parsequerystring.stringify,querystring.escapequerystring.unescape

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

const querystring = require("querystring");

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

一、querystring.parse(str,separator,eq,options)

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

参数:

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

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

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

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

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

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

例子1,querystring.parse

querystring.parse("name=whitemu&sex=man&sex=women");
/*
return:
{ name: 'whitemu', sex: [ 'man', 'women' ] }
*/
querystring.parse("name=whitemu#sex=man#sex=women","#",null,{maxKeys:2});
/*
return:
{ name: 'whitemu', sex: 'man' }
*/

二、querystring.stringify(obj,separator,eq,options)

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

参数:

   obj指需要序列化的对象

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

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

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

      1.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'
*/

三、querystring.escape(str)

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

例子3,querystring.escape

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

四、querystring.unescape(str)

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

例子4,querystring.unescape

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

总结

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

  1、querystring.stringify序列化;

  2、querystring.parse反序列化;

  3、querystring.escape编码;

  4、querystring.unescape解码;

好了,以上就是这篇文章的全部内容了,当然啦,鄙人对于该模块的研究还是不深,仅仅对该模块的API做了简单的翻译和加上自己的一些理解,若有错误希望能够指正,一起探讨。同时希望本文的内容对大家能有一定的帮助。

相关文章

  • Nodejs实现短信验证码功能

    Nodejs实现短信验证码功能

    使用Nodejs的开发者愈来越多,基于Nodejs的后台开发也多了起来,像短信验证码、短信群发、国际短信这些需求,完全可以采用第三方接口来实现,云片就提供了这样的接口
    2017-02-02
  • 2019最新21个MySQL高频面试题介绍

    2019最新21个MySQL高频面试题介绍

    又到了一年的面试季,今年情况特殊,很多人可能都窝在家里,也有一些人准备找工作,但是疫情严重,也没企业发招聘信息。这个时候,最好的做法就是在家里刷面试题
    2020-02-02
  • 详解NODEJS的http实现

    详解NODEJS的http实现

    这篇文章主要介绍了详解NODEJS的http实现的技术过程以及详细分析,需要的朋友学习参考下吧。
    2018-01-01
  • node.js实现http服务器与浏览器之间的内容缓存操作示例

    node.js实现http服务器与浏览器之间的内容缓存操作示例

    这篇文章主要介绍了node.js实现http服务器与浏览器之间的内容缓存操作,结合实例形式分析了node.js http服务器与浏览器之间的内容缓存原理与具体实现技巧,需要的朋友可以参考下
    2020-02-02
  • node.js中使用socket.io制作命名空间

    node.js中使用socket.io制作命名空间

    这篇文章主要介绍了node中使用socket.io制作命名空间,需要的朋友可以参考下
    2014-12-12
  • 浅谈Node.js ORM框架Sequlize之表间关系

    浅谈Node.js ORM框架Sequlize之表间关系

    下面小编就为大家带来一篇浅谈Node.js ORM框架Sequlize之表间关系。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-07-07
  • 深入理解nodejs中Express的中间件

    深入理解nodejs中Express的中间件

    一个Express应用就是在调用各种中间件。可见中间件在web应用开发中的重要性,有兴趣的可以了解一下
    2017-05-05
  • nodejs使用async模块同步执行的方法

    nodejs使用async模块同步执行的方法

    今天小编就为大家分享一篇关于nodejs使用async模块同步执行的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • nodejs检测因特网是否断开的解决方案

    nodejs检测因特网是否断开的解决方案

    这篇文章主要给大家介绍了关于nodejs如何检测因特网是否断开的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用nodejs具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • 你应该知道的几类npm依赖包管理详解

    你应该知道的几类npm依赖包管理详解

    npm 是node.js 里的包管理器,是一个命令行工具,下面这篇文章主要给大家介绍了关于你应该知道的几类npm依赖包管理,文中通过示例代码介绍的非常详细,需要的朋友可以参考借鉴,下面随着小编来一起学习学习吧。
    2017-10-10

最新评论