querystring.parse() 方法将 URL 查询字符串 str 解析为键值对的集合。
querystring.stringify() 方法通过遍历对象的自身属性从给定的 obj 生成 URL 查询字符串。
const qs = require('querystring')
let queryStr1 = 'name=lupeipei&age=18&sex=1'
let queryStr2 = 'name:lupeipei;age:18;sex:1'
let queryObj1 = {
name: 'lupeipei',
age: 18,
sex:1
}
let queryObj2 = {
name: '芦培培',
age: 18,
sex:1
}
//querystring.parse(str[, sep[, eq[, options]]])
//querystring.parse() 方法将 URL 查询字符串 str 解析为键值对的集合。
console.log(qs.parse(queryStr1))
console.log(qs.parse(queryStr2, ';', ':'))
//querystring.stringify(obj[, sep[, eq[, options]]])
//querystring.stringify() 方法通过遍历对象的自身属性从给定的 obj 生成 URL 查询字符串。
console.log(qs.stringify(queryObj1))
console.log(qs.stringify(queryObj1, ';', ':'))
//如果对象的属性值有汉字,使用querystring.stringify转化为字符串时,会对汉子进行百分比编码,
// 默认使用的是querystring.escape方法
//qs.escape将查询字符串中不安全的 URL 字符转换为百分比编码
let queryStr3 = qs.stringify(queryObj2, null, null, {
encodeURIComponent(string) {
return qs.escape(string)
}
})
console.log(queryStr3)
//当使用querystring.parse把含有百分比编码的字符串转换为对象时,
// 默认会使用querystring.unescape方法对字符串中的百分比编码字符进行解码。
//querystring.unescape() 方法在给定的 str 上执行 URL 百分比编码字符的解码。
let queryObj3 = qs.parse(queryStr3, null, null, {
decodeURIComponent(string) {
return qs.unescape(string)
}
})
console.log(queryObj3)
执行结果:

网友评论