当前位置: 首页 > news >正文

NodeJs》》url地址参数 解析 URLSearchParams querystring

Node.js 的 querystring 模块(在较新版本中已被 URLSearchParams 取代)Node.js v17 中被标记为"遗留" (Legacy)

// 1. 基本解析和格式化
const querystring = require('querystring');// 解析查询字符串
const query = 'name=John&age=30&city=New+York';
const parsed = querystring.parse(query);
console.log(parsed);
// 输出: { name: 'John', age: '30', city: 'New York' }// 将对象转换为查询字符串
const obj = { name: 'Jane', age: '25', occupation: 'developer' };
const stringified = querystring.stringify(obj);
console.log(stringified);
// 输出: 'name=Jane&age=25&occupation=developer'
//  2. 处理数组参数
// 解析带数组的查询字符串
const querystring = require('querystring');
const arrayQuery = 'colors=red&colors=green&colors=blue';
const parsedArray = querystring.parse(arrayQuery);
console.log(parsedArray);
// 输出: { colors: ['red', 'green', 'blue'] }// 将数组转换为查询字符串
const arrayObj = { fruits: ['apple', 'banana', 'orange'] };
const arrayString = querystring.stringify(arrayObj);
console.log(arrayString);
// 输出: 'fruits=apple&fruits=banana&fruits=orange'
//  编码 解码
// 编码特殊字符
const querystring = require('querystring');
const toEncode = 'query=hello world&lang=中文';
const encoded = querystring.escape(toEncode);
console.log(encoded);
// 输出: 'query%3Dhello%20world%26lang%3D%E4%B8%AD%E6%96%87'// 解码
const toDecode = 'query%3Dhello%20world%26lang%3D%E4%B8%AD%E6%96%87';
const decoded = querystring.unescape(toDecode);
console.log(decoded);
// 输出: 'query=hello world&lang=中文'
// 实际应用 - Express 路由中的查询参数处理
const express = require('express');
const querystring = require('querystring');
const app = express();app.get('/search', (req, res) => {// 从URL获取查询字符串const queryString = req.url.split('?')[1] || '';const params = querystring.parse(queryString);console.log('搜索参数:', params);res.send(`搜索条件: ${JSON.stringify(params)}`);
});app.listen(3000, () => {console.log('服务器运行在 http://localhost:3000');
});// 访问 http://localhost:3000/search?q=nodejs&page=2&sort=desc
// 输出: 搜索条件: {"q":"nodejs","page":"2","sort":"desc"}

现代替代方案 - URLSearchParams

URLSearchParams

// 更现代的API (推荐)
const { URLSearchParams } = require('url');// 从查询字符串创建
const params = new URLSearchParams('name=John&age=30');
console.log(params.get('name')); // 输出: John
console.log(params.toString()); // 输出: name=John&age=30// 添加参数
params.append('city', 'New York');
console.log(params.toString());
// 输出: name=John&age=30&city=New+York// 遍历所有参数
for (const [name, value] of params) {console.log(`${name}: ${value}`);
}

URL

官方资料
在这里插入图片描述

http://www.dtcms.com/a/326272.html

相关文章:

  • vscode的wsl环境,怎么打开linux盘的工程?
  • CSS彩虹七色十六进制值
  • langmem
  • 排序与查找,简略版
  • 《算法导论》第 18 章 - B 树
  • linux 秒 安装谷歌浏览器 区分ubuntu和centos 给python爬取网站使用
  • Haystack:面向大模型应用的模块化检索增强生成(RAG)框架
  • 简单Modules 的配置与管理,灵活应对多版本软件环境的需求。
  • 基于SpringBoot+Uniapp的血压监控小程序(Echarts图形化分析)
  • C++进阶:C++11(2)
  • 应用层模拟面试题
  • 【Jmeter】两个函数拼接
  • IPCP(IP Control Protocol,IP控制协议)
  • 李宏毅2025《机器学习》-第十讲:AI“思想钢印”:深入解析大模型的知识编辑技术
  • docter的使用、vscode(cursor)和docker的连接,详细分析说明
  • (一)vscode搭建espidf环境
  • react路由跳转与路由懒加载等(对照vue来说一说不同之处)
  • 前端开发:React(3)—— 组件运作和事件处理
  • 【论文阅读】BEVFormer论文解析及Temporal Self-Attention、Spatial Cross-Attention注意力机制详解及代码示例
  • 如何平衡短期与长期需求
  • PCIE 设备百科
  • 【运维进阶】LAMPLNMP 最佳实践
  • MPXxx6115A Series的概述以及 MPXxx6115A series 用OSS-ECAL的提供情况
  • Pytest 全流程解析:执行机制与报告生成实战指南
  • html转成markdown(1.0.0)
  • Eino中的两种应用模式:“单独使用”和“在编排中使用”
  • ZKmall开源商城多商户架构:平衡管理与运营的技术方案
  • 【lucene】livedocs描述
  • 如何开始创业?
  • OpenBMC中phosphor-ipmi-host深度解析:架构、原理与应用实践