nodejs之querystring模块

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

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

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

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

1 const querystring = require("querystring");

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

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解码;

  当然啦,鄙人对于该模块的研究还是不深,仅仅对该模块的API做了简单的翻译和加上自己的一些理解,若有错误希望能够指正,一起探讨。。。

时间: 2024-10-11 14:28:58

nodejs之querystring模块的相关文章

NodeJS之queryString

前面的话 无论是前端还是后端,经常出现的应用场景是URL中参数的处理.nodeJS的queryString模块提供了一些处理 query strings 的工具.本文将详细介绍nodeJS中的queryString var querystring = require('querystring'); /* { unescapeBuffer: [Function], unescape: [Function: qsUnescape], escape: [Function], encode: [Func

nodejs学习笔记二(get请求、post请求、 querystring模块,url模块)

请求数据 前台:form.ajax.jsonp 后台:接受请求并返回响应数据 前台<= http协议 =>后台 常用的请求的方式: 1.GET           数据在url中 2.POST         数据不再url中 get方式:通过地址栏来传输     name=value&name1=value1&               作用:分享 post方式:通过head头传输      数据相对安全 form action="http://www.vaidu

Nodejs模块之Querystring模块

Querystring模块 在前端开发和后端开发我们最常遇到的问题那就是对参数的处理,我们需要传递不同用途的参数,追加到url地址中,发送给服务器,而服务器拿到的是一个字符串的参数串,他不知道个数,也不知道参数名和参数值.这就需要一种途径把参数一个一个的拿出来,放到对象里面.我们可以遍历这个对象,也可以直接拿到对象里面的值. 怎么样把参数的对象序列化为一个参数的字符串? Querystring.stringify({name:'soctt',course['jade','node'],form:

nodejs QueryString模块 详解

QueryString模块 "QueryString" 模块用于实现URL参数字符串与参数对象的互相转换 此类一共包括4个方法: querystring.stringify(obj, [sep], [eq]) querystring.parse(str, [sep], [eq], [options]) querystring.escape querystring.unescape 一:querystring.stringify(obj,[sep],[eq]) 对象格式化成参数字符串 ,

nodejs入门API之url模块+querystring模块

关于URL的一些基础内容 URL模块的API解析 URL的参数URLSearchParams类 querystring模块 一.关于URL的一些基础内容 1.1 定义: 在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位符),它是WWW的统一资源定位标志,就是指网络地址. 1.2 URL的组成部分:(以下面这个URL为例) http://www.baidu.com:8080/news/index.asp?boar

nodejs的require模块及路径

在nodejs中,模块大概可以分为核心模块和文件模块. 核心模块是被编译成二进制代码,引用的时候只需require表示符即可,如(require('net')). 文件模块,则是指js文件.json文件或者是.node文件.在引用文件模块的时候后要加上文件的路径:/-/-/xxx.js表示绝对路径../xxx.js表示相对路径(同一文件夹下的xxx.js),../表示上一级目录.如果既不加/-/.../又不加./的话,则该模块要么是核心模块,要么是从一个node_modules文件夹加载. 对于

Node.js(四)——querystring模块

对url解析的时候,可以用一个querystring把url的query解析成一个对象 在前台还后台开发中遇到的最多的就是参数的处理我们需要传递不同用途的参数追加到url地址中发送给服务器而服务器拿到是一个字符串的参数串不知道个数.参数.参数名 这就需要一个途径需要把参数给一个一个地拎出来放到对象里面 我们可以遍历这个对象也就获取里面的值 在NodeJs中,querystring给我们提供了这个功能 querystring.stringify(obj, [sep], [eq]) 第二个参数就是连

如何编写package.json配置NodeJS项目的模块声明

在NodeJS项目中,用package.json文件来声明项目中使用的模块,这样在新的环境部署时,只要在package.json文件所在的目录执行 npm install 命令即可安装所需要的模块. package.json文件中可配置的项有:名称(name).应用描述(description).版本号(version).应用的配置项(config).作者(author).资源仓库地址(repository).授权方式(licenses).目录(directories).应用入口文件(main)

nodejs学习(模块的简单了解)

1.模块模块(Module)是nodejs最重要的支柱,开发一个具有一定规范的程序不可能只用一个文件, 通常我们需要把各个功能拆分,封装,然后在组合在一起,模块正是为了现在这种方式而诞 生的.在浏览器的javascript中,脚本模块的拆分和组合通常情况下我们都使用Html的 Script标签来实现,但是nodejs给我们提供了require这个函数来调用其他的模块.-----------------------------------------------------------------