querystring 与 url 模块
querystring 解析与序列化 URL 查询串:querystring.parse('a=1&b=2') 得到对象,stringify({a:1}) 还原成字符串(中文自动编码)。新版项目可直接上 URLSearchParams,API 更现代。
url.parse 把完整地址拆成 protocol/host/pathname/search/hash 等字段;它第二个参数传 true 会顺带把 query 解析成对象。拿到 pathname 后即可做路由匹配。
- querystring.parse:把 a=1&b=2 变成 {a: 1, b: 2}
- URLSearchParams现代化的查询串接口(get/set/toString)
- url.parse 拆 url:pathname 干净路径、search 含 ?、query 解析对象
const qs = require('querystring'); const url = require('url'); // 解析查询串 const q = qs.parse('id=1&city=%E6%9D%AD%E5%B7%9E'); console.log(q); // { id: '1', city: '杭州' } // 序列化(中文自动 encodeURIComponent) console.log(qs.stringify({ page: 2, kw: 'Node 教程' })); // page=2&kw=Node%20%E6%95%99%E7%A8%8B // 拆解完整 URL const parsed = url.parse('https://a.com/users/42?tab=info#top', true); console.log(parsed.protocol); // https: console.log(parsed.host); // a.com console.log(parsed.pathname); // /users/42 console.log(parsed.query); // { tab: 'info' } console.log(parsed.hash); // #top // 现代写法:URLSearchParams const sp = new URLSearchParams('?a=1&b=2'); sp.set('c', '3'); console.log(sp.get('a'), sp.toString()); // 1 a=1&b=2&c=3




