Node.js学习之查询字符串解析querystring详解

发布时间 - 2026-01-11 03:27:33    点击率:

前言

查询字符串模块提供了解析和格式化工具URL查询字符串的API,本文将详细介绍关于Node.js查询字符串解析querystring的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。

一、querystring.parse(str[, sep[, eq[, options]]])

这个API将URL查询字符串解析为键和值的集合

  • str:URL查询字符串
  • sep:标明字符串中用于划分键值对的符号,默认为“&”
  • eq:用以标明查询字符串中键和值之间的符号,默认为“=”

例子如下:

const querystring = require('querystring');
const url = require('url');
var queryUrl="http://localhost:8888/bb?name=李浩&memo=helloworld&memo=helloC";
queryUrl=url.parse(queryUrl).query;
console.log(querystring.parse(queryUrl)) ;
----------------------------------------------------
// 输出 { name: '李浩', memo: [ 'helloworld', 'helloC' ] }

带参数的例子:

const querystring = require('querystring');
const url = require('url');
var queryUrl="http://localhost:8888/bb?name==李浩*memo==helloworld*memo==helloC";
queryUrl=url.parse(queryUrl).query;
console.log(querystring.parse(queryUrl,'*','==')) ; 
----------------------------------------------------
// 输出 { name: '李浩', memo: [ 'helloworld', 'helloC' ] }

二、querystring.stringify(obj[, sep[, eq[, options]]])

这个API从一个给定的对象中生成一个URL查询字符串,通过遍历对象“自己的属性”。

  • obj为给定的对象
  • sep为键值对之间的分隔符,默认为“&”
  • eq为键和值之间的连接符号,默认为“=”

例子如下:

const qs=require("querystring");
var obj={ name: '李浩', memo: [ 'helloworld', 'helloC' ] }
console.log(
 qs.stringify(obj)
)
/* 
 输出 name=%E6%9D%8E%E6%B5%A9&memo=helloworld&memo=helloC;
 API默认是对中文进行了编码,下面我们再说编码解码的API
*/

带参数的例子:

const qs=require("querystring");
var obj={ name: '李浩', memo: [ 'helloworld', 'helloC' ] }
console.log(
 qs.stringify(obj,'@','==')
)

输出  name==%E6%9D%8E%E6%B5%A9@memo==helloworld@memo==helloC;

相信应该看出了带参数和不带参数的区别了吧

三、querystring.unescape(str)

这个API是对URL查询字符串中的URL进行解码的,例如上面我们进行stringify操作的时候,中文就会被编码,那么中文在URL中的时候也会被解析为编码后的样子,这个API一般配合querystring.parse()使用

我们就拿上面中文出现编码的URL查询字符串来举例

例子如下:

const qs = require("querystring");
var url = "name=%E6%9D%8E%E6%B5%A9&memo=helloworld&memo=helloC"
var normalStr = qs.unescape(url)
console.log(
 qs.parse(normalStr)
)
//输出 { name: '李浩', memo: [ 'helloworld', 'helloC' ] }

四、querystring.escape(str)

这个API相当于就是querystring.unescape(str)的逆向操作了,把中文编码,常和querystring.stringify()连同使用

var obj = { name: '李浩', memo: ['helloworld', 'helloC'] };
console.log(
 qs.escape(
  qs.stringify(obj)
 )
)
// 输出 name%3D%25E6%259D%258E%25E6%25B5%25A9%26memo%3Dhelloworld%26memo%3DhelloC
//连同&和=一起编码了

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。


# nodejs  # 字符串  # nodejs的querystring  # node  # querystring模块  # Node.js从字符串生成文件流的实现方法  # 浅析Node.js查找字符串功能  # Node.js实现在目录中查找某个字符串及所在文件  # Node.js如何提取文件中的中文字符  # 默认为  # 键值  # 自己的  # 就会  # 也会  # 相关内容  # 说了  # 遍历  # 不多  # 有一定  # 作了  # 详细介绍  # 这篇文章  # 谢谢大家  # 不带  # 就拿  # 进行了  # 分隔符  # 有疑问  # amp 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 实例解析angularjs的filter过滤器  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  详解Oracle修改字段类型方法总结  高端企业智能建站程序:SEO优化与响应式模板定制开发  如何在 Telegram Web View(iOS)中防止键盘遮挡底部输入框  b2c电商网站制作流程,b2c水平综合的电商平台?  Laravel如何处理跨站请求伪造(CSRF)保护_Laravel表单安全机制与令牌校验  googleplay官方入口在哪里_Google Play官方商店快速入口指南  nginx修改上传文件大小限制的方法  移动端手机网站制作软件,掌上时代,移动端网站的谷歌SEO该如何做?  Laravel怎么判断请求类型_Laravel Request isMethod用法  简单实现jsp分页  Laravel怎么解决跨域问题_Laravel配置CORS跨域访问  Laravel怎么实现一对多关联查询_Laravel Eloquent模型关系定义与预加载【实战】  教学论文网站制作软件有哪些,写论文用什么软件 ?  网站制作免费,什么网站能看正片电影?  大连 网站制作,大连天途有线官网?  夸克浏览器网页跳转延迟怎么办 夸克浏览器跳转优化  Laravel如何使用Livewire构建动态组件?(入门代码)  Bootstrap CSS布局之列表  悟空识字如何进行跟读录音_悟空识字开启麦克风权限与录音  在线制作视频的网站有哪些,电脑如何制作视频短片?  Swift中switch语句区间和元组模式匹配  海南网站制作公司有哪些,海口网是哪家的?  如何在建站之星网店版论坛获取技术支持?  Laravel怎么上传文件_Laravel图片上传及存储配置  Android中AutoCompleteTextView自动提示  Laravel怎么实现微信登录_Laravel Socialite第三方登录集成  为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】  作用域操作符会触发自动加载吗_php类自动加载机制与::调用【教程】  EditPlus中的正则表达式 实战(2)  如何在景安云服务器上绑定域名并配置虚拟主机?  如何在 React 中条件性地遍历数组并渲染元素  Java垃圾回收器的方法和原理总结  如何在HTML表单中获取用户输入并结合JavaScript动态控制复利计算循环  网站制作大概多少钱一个,做一个平台网站大概多少钱?  JavaScript中的标签模板是什么_它如何扩展字符串功能  Python企业级消息系统教程_KafkaRabbitMQ高并发应用  Win11怎么开启自动HDR画质_Windows11显示设置HDR选项  做企业网站制作流程,企业网站制作基本流程有哪些?  哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?  js实现获取鼠标当前的位置  Laravel 419 page expired怎么解决_Laravel CSRF令牌过期处理  开心动漫网站制作软件下载,十分开心动画为何停播?  如何在Windows环境下新建FTP站点并设置权限?  深圳防火门网站制作公司,深圳中天明防火门怎么编码?  html5源代码发行怎么设置权限_访问权限控制方法与实践【指南】  弹幕视频网站制作教程下载,弹幕视频网站是什么意思?  如何在阿里云购买域名并搭建网站?  Laravel如何实现全文搜索功能?(Scout和Algolia示例)