querystring 是处理URL中参数的模块。
const queryStr = require('querystring')
console.log('111: ', queryStr) // 所有方法
/*
{
unescapeBuffer: [Function: unescapeBuffer],
unescape: [Function: qsUnescape],
escape: [Function: qsEscape],
stringify: [Function: stringify],
encode: [Function: stringify],
parse: [Function: parse],
decode: [Function: parse]
}
*/
querystring.parse(str,[seq], [eq])
把一个URL查询字符串 str 解析成一个键值对的集合;
seq: 分隔键值对的子字符串 。默认值为 '&'
eq: 链接键值对的子字符串 。默认值为 '='
let url = 'name=lxc&age=20&height=&weight=120'
console.log(queryStr.parse(url))
// {
// name: 'lxc',
// age: '20',
// height: '',
// weight: '120'
// }
querystring.stringify(obj, [seq], [eq])
此方法是 querystring.parse( ) 方法的逆向操作:
let o = {
username: 'lxc',
password: 20,
params: ['bar', 'foo']
}
console.log(queryStr.stringify(o))
//输出结果为 username=lxc&password=20¶ms=bar¶ms=foo
参数二和参数三分别表示:以seq分隔(默认以&分隔),key和value之间以eq链接(默认以= 链接key和value值)
let o = {
username: 'lxc',
password: 20
}
console.log(queryStr.stringify(o, ',', ':'))
// 输出结果为 username:lxc,password:20
querystring.escape(str)
对传入的字符串进行编码:
console.log(queryStr.escape('name=lxc&age=20'))
// ame%3Dlxc%26age%3D20
querystring.unescape(str)
对传入的含有%的字符串进行解码:
console.log(queryStr.unescape('name%3Dlxc%26age%3D20'))
// name=lxc&age=20