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 解码;

好啦 这一篇先到这里。

我的文章都是学习过程中的总结,如果发现错误,欢迎留言指出,我及时更正

经验分享 程序员 微信小程序 职场和发展