querystring模块提供了一些实用工具,主要是用来解析和格式化查询字符串。
查询字符串
在一个完整的URL字符串里,从“?”字符之后(不包括“?”字符)到 “#” 字符之前(如果存在“#”字符)或者到该URL字符串结束的这一部分称为查询字符串。
因为涉及到URL,所以querystring模块经常搭配url模块一起使用。
url可以参考://www.greatytc.com/p/d94185e25d8f
querystring是node的内置模块,所以可以直接引进来使用
const qs = require('querystring');
方法:
1.querystring.parse(str [,seq [,eq [,options]]])
querystring.parse()主要用来解析查询字符串,返回一个对象
str 要解析的URL查询字符串
seq 用来界定查询字符串中的键值对的子字符串 默认为“&”
eq 用来界定查询字符串中的键与值得子字符串 默认为“=”
options<object> maxKeys 制定要解析的键的最大数量默认1000制定为0则移除该限制
小栗子:
querystring.parse("user=abc&pass=123456&sex=male");
{user:'abc',pass:'123456',sex:'male'}
//遇到复选框时会转换成一个数组> querystring.parse("user=abc&pass=123456&interests=fishing&interests=reading");
{
user:'abc',
pass:'123456',
interests:['fishing','reading']
}
//使用“=”划分键值对>
querystring.parse("user=abc&pass=123456&sex=male","=");
{user:'','abc&pass':'','123456&sex':'',male:''}
//使用“:”划分键和值
querystring.parse("user=abc&pass=123456&sex=male","&",":");
{'user=abc':'','pass=123456':'','sex=male':''}
//设定解析的键数量为
1> querystring.parse("user=abc&pass=123456&sex=male","&","=",{maxKeys:1});
{user:'abc'}
2.querystring.stringify(obj [,sep [,eq]])
querystring.stringify()方法作用是将对象转换成查询字符串
obj 必须制定 要转换的对象
sep 可选 用于指定查询字符串中的分割字符,默认“&”
eq 可选 用于制定查询字符串中的分配字符 默认“=”
小栗子
querystring.stringify({user:"abc",age:18,sex:"male"});'
user=abc&age=18&sex=male'