Nodejs06--node常用模块之--querystring
querystring 模块
字面意思就是 查询字符串,一般是对http请求所带的数据进行解析
引入模块:require(querystring); querystring模块仅有四个方法
-
querystring.parse(str); parse函数:是将一个字符串反序列化为一个对象。 querystring.escape(str); escape函数:可使传入的字符串进行编码。 querystring.stringify(str); stringif函数:将一个对象序列化成一个字符串,与querystring.parse相对 querystring.unescape(); unescape函数:可将含有%的字符串进行解码
【 例 1 】 querystring.parse(str)
const http = require(http); const url = require(url); const qs = require(querystring); //【例1】 const strurl = http://www.baidu.com?a=1&b=2; const r = qs.parse(strurl); console.log(r); //{ http://www.baidu.com?a: 1, b: 2 } const server = http.createServer(function(request,response){ const r2 = qs.parse(url.parse(request.url).query); console.log(r2);//{ newsid: 1, autuor: zs } 相当于parst的true的效果 response.end(); }); server.listen(8000);
【 例 2 】querystring.parse(str,separator,eq); 有些时候参数并不是用 “$”符号来连接的,如下:
参数 :str指需要反序列化的字符串;
separator(可省)指用于分割str这个字符串的字符或字符串,默认值为"&";
eq(可省)指用于划分键和值的字符或字符串,默认值为"=";
const http = require(http); const url = require(url); const qs = require(querystring); const data = num1=10$num2=20; const data2 = num1-30$num2-30; const server = http.createServer(function(request,response){ //有些时候参数并不是用 &符号连接的 const r2 = qs.parse(data,$);//参数以 $分割 console.log(r2);//{ num1: 10, num2: 20 } const r3 = qs.parse(data2,$,-);//参数名和值以 - 分割 console.log(r3);//{ num1: 30, num2: 30 } response.end(); }); server.listen(8000);
【例 3:】querystring.escape(str)
在浏览器中搜索的内容是中文,引擎会对参数中的中文进行编码。node是如何实现的呢
比如在百度中搜索“中国”,在地址栏中会出现一长串被编码过的参数....后面太长了,大家自己去搜搜看看地址栏里的内容吧 。回来接着说该模块。node是如何实现的呢
const http = require(http); const url = require(url); const qs = require(querystring); const strbm = http://www.baidu.com/s?wd=中国$a=10; const server = http.createServer(function(request,response){ const resbm = qs.escape(strbm); console.log(resbm); response.end(); //结果://http%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3D%E4%B8%AD%E5%9B%BD%24a%3D10 }); server.listen(8000);
【例 4:】querystring.stringify(); stringify函数:将一个对象序列化成一个字符串,与querystring.parse相对。
拼接字符串,变成查询字符串的形式
const http = require(http); const url = require(url); const qs = require(querystring); const strbm = http://www.baidu.com/s?wd=中国$a=10; const server = http.createServer(function(request,response){ var params = { a:50, b:50 } const rsgf = qs.stringify(params); //也可以指定连接符,同理 可以指定参数名和值的连接符 const rsgf2 = qs.stringify(params,@); console.log(rsgf);//a=50&b=50 console.log(rsgf2);//a=50@b=50 response.end(); }); server.listen(8000);
【 例 5 】 querystring.unescape(); unescape函数:可将含有%的字符串进行解码
const http = require(http); const url = require(url); const qs = require(querystring); //【例5】 对%进行解码 const strJm = http%3A%2F%2Fwww.baidu.com%2Fs%3Fwd%3D%E4%B8%AD%E5%9B%BD%24a%3D10; const server = http.createServer(function(request,response){ const resJm = qs.unescape(strJm); console.log(resJm);//http://www.baidu.com/s?wd=中国$a=10 response.end(); }); server.listen(8000);
querystring 这个模块总结一下:该模块相对的还是比较简单,仅有4个方法。
-
querystring.stringify 序列化; querystring.parse 反序列化; querystring.escape 编码; querystring.unescape 解码;
好啦 这一篇先到这里。
我的文章都是学习过程中的总结,如果发现错误,欢迎留言指出,我及时更正