前言
querystring模塊提供了一些實(shí)用工具散罕,主要是用來(lái)解析和格式化查詢字符串。
查詢字符串
在一個(gè)完整的URL字符串里傀蓉,從“欧漱?”字符之后(不包括“?”字符)到 “#” 字符之前(如果存在“#”字符)或者到該URL字符串結(jié)束的這一部分稱為查詢字符串葬燎。
因?yàn)樯婕暗経RL误甚,所以querystring模塊經(jīng)常搭配url模塊一起使用缚甩。
開(kāi)始
querystring是nodejs內(nèi)置的模塊,因此可以直接引用進(jìn)來(lái)使用
const qs = require("querystring");
方法
1.querystring.parse(str [,seq [,eq [,options]]])
querystring.parse()主要用來(lái)解析查詢字符串靶草,返回一個(gè)對(duì)象
- str <string> 要解析的URL查詢字符串
- seq <string> 用來(lái)界定查詢字符串中的鍵值對(duì)的子字符串 默認(rèn)為“&”
- eq <string> 用來(lái)界定查詢字符串中的鍵與值得子字符串 默認(rèn)為“=”
- options <object>
- maxKeys 制定要解析的鍵的最大數(shù)量 默認(rèn)1000 指定為0則移除該限制
看幾個(gè)例子
> querystring.parse("user=abc&pass=123456&sex=male");
{ user: 'abc', pass: '123456', sex: 'male' }
//遇到復(fù)選框時(shí)會(huì)轉(zhuǎn)換成一個(gè)數(shù)組
> querystring.parse("user=abc&pass=123456&interests=fishing&interests=reading");
{ user: 'abc',
pass: '123456',
interests: [ 'fishing', 'reading' ] }
//使用“=”劃分鍵值對(duì)
> 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': '' }
//設(shè)定解析的鍵數(shù)量為1
> querystring.parse("user=abc&pass=123456&sex=male","&","=",{maxKeys:1});
{ user: 'abc' }
2.querystring.stringify(obj [,sep [,eq]])
querystring.stringify()方法作用是將對(duì)象轉(zhuǎn)換成查詢字符串
- obj 必須制定 要轉(zhuǎn)換的對(duì)象
- sep 可選 用于指定查詢字符串中的分割字符蹄胰,默認(rèn)“&”
- eq 可選 用于制定查詢字符串中的分配字符 默認(rèn)“=”
栗子
> querystring.stringify({user:"abc",age:18,sex:"male"});
'user=abc&age=18&sex=male'