东莞品牌网站设计公司,网站备案转服务器,做网站还能赚钱吗,网络营销权威概念是无论是前端还是后端#xff0c;经常出现的应用场景是URL中参数的处理。nodeJS的queryString模块提供了一些处理 query strings 的工具。本文将详细介绍nodeJS中的queryStringvar querystring require(querystring);/*{ unescapeBuffer: [Function],unescape: [Function: qsUn… 无论是前端还是后端经常出现的应用场景是URL中参数的处理。nodeJS的queryString模块提供了一些处理 query strings 的工具。本文将详细介绍nodeJS中的queryStringvar querystring require(querystring);/*{ unescapeBuffer: [Function],unescape: [Function: qsUnescape],escape: [Function],encode: [Function],stringify: [Function],decode: [Function],parse: [Function] } */console.log(querystring); 序列化【querystring.parse(str[, sep[, eq[, options]]])】 querystring.parse()方法能把一个URL查询字符串(str)解析成一个键值对的集合参数如下str String 要解析的 URL 查询字符串。
sep String 用于界定查询字符串中的键值对的子字符串。默认为 。
eq String 用于界定查询字符串中的键与值的子字符串。默认为 。
options ObjectdecodeURIComponent Function 当解码查询字符串中百分号编码的字符时使用的函数。默认为 querystring.unescape()
maxKeys number 指定要解析的键的最大数量。默认为 1000。指定为 0 则移除键数的限制var querystring require(querystring);var str foobarabcxyzabc123;
console.log(querystring.parse(str));//{ foo: bar, abc: [ xyz, 123 ] } 第二个参数用于界定查询字符串中的键值对的子字符串var querystring require(querystring);var str foobarabcxyzabc123;
console.log(querystring.parse(str,a));//{ foo: b, r: , bc: [ xyz, 123 ] } 第三个参数用于界定查询字符串中的键与值的子字符串var querystring require(querystring);var str foobarabcxyzabc123;
console.log(querystring.parse(str,,c));//{ foobar: , ab: [ xyz, 123 ] } [注意]querystring.parse()方法返回的对象不继承自 JavaScript 的 Object。 这意味着典型的 Object 方法如 obj.toString()、obj.hasOwnProperty() 等没有被定义且无法使用 默认情况下查询字符串中的百分号编码的字符会被认为使用了 UTF-8 编码。 如果使用的是另一种字符编码则 decodeURIComponent 选项需要被指定var querystring require(querystring);//{ w: , foo: bar }console.log(querystring.parse(w%D6%D0%CE%C4foobar, null, null,{ decodeURIComponent: gbkDecodeURIComponent }));【querystring.stringify(obj[, sep][, eq][, options])】 querystring.stringify()方法是querystring.parse()方法的逆向操作通过遍历对象的自有属性从一个给定的obj产生一个URL查询字符串参数如下obj Object 要序列化成一个 URL 查询字符串的对象
sep String 用于界定查询字符串中的键值对的子字符串。默认为 eq String 用于界定查询字符串中的键与值的子字符串。默认为 optionsencodeURIComponent Function 当把对URL不安全的字符转换成查询字符串中的百分号编码时使用的函数。默认为 querystring.escape()var querystring require(querystring);//foobarbazquxbazquuxcorgeconsole.log(querystring.stringify({ foo: bar, baz: [qux, quux], corge: }));var querystring require(querystring);//foo:bar;baz:quxconsole.log(querystring.stringify({foo: bar, baz: qux}, ;, :)); 编码【querystring.escape(str)】 querystring.escape()方法对给定的str执行URL百分号编码与encodeURIComponent方法一样 querystring.escape()方法是供querystring.stringify()使用的且通常不被直接使用。它之所以对外开放是为了在需要时可以通过给querystring.escape赋值一个函数来重写编码的实现var querystring require(querystring);
console.log(encodeURIComponent(测试));//%E6%B5%8B%E8%AF%95console.log(querystring.escape(测试));//%E6%B5%8B%E8%AF%95【querystring.unescape(str)】 querystring.unescape() 方法对给定的 str 上的 URL 百分号编码的字符执行解码 querystring.unescape()方法是供querystring.parse()使用的且通常不被直接使用。它之所以对外开放是为了在需要时可以通过给querystring.unescape赋值一个函数来重写解码的实现。 querystring.unescape()方法默认使用JavaScript内置的decodeURIComponent() 方法来解码var querystring require(querystring);
console.log(decodeURIComponent(%E6%B5%8B%E8%AF%95));//测试console.log(querystring.unescape(%E6%B5%8B%E8%AF%95));//测试 GET get请求的数据保存在URL中http://127.0.0.1:8080/home/test?a1b2var http require(http);var url require(url);var querystring require(querystring);
http.createServer(function(req,res){ var urlObj url.parse(req.url); var query urlObj.query; var queryObj querystring.parse(query);console.log(req.url);///home/test?a1b2console.log(query);//a1b2console.log(queryObj);//{ a: 1, b: 2 }}).listen(8080); POST post请求的数据会被写入缓冲区中需要通过request的data事件和end事件来进行数据拼接处理var http require(http);var url require(url);var querystring require(querystring);
http.createServer(function(req,res){ var str ; req.on(data, function(thunk){str thunk;});req.on(end, function(){console.log(str);//nameaemailb%40b.comvar queryObj querystring.parse(str);console.log(queryObj);//{ name: a, email: b%40b.com } }); }).listen(8080); 转载于:https://blog.51cto.com/12945177/1950678