Node.js v7.4.0 Documentation
Query String
- querystring.escape(str)
- querystring.unescape(str)
- querystring.stringify(obj[, sep[, eq[, options]]])
- querystring.parse(str[, sep[, eq[, options]]])
Query String
Stability: 2 - Stable
The querystring module provides utilities for parsing and formatting URL query strings.
querystring模块提供了一个工具,用来解析和格式化URL的查询字符。(在node命令行模式被默认引入,但在node脚本中需要显示引入)。
const querystring = require('query_string');
querystring.escape(str)、querystring.unescape(str)
The querystring.escape() method performs URL percent-encoding on the given str in a manner that is optimized for the specific requirements of URL query strings.
querystring.escape(str)方法在给定的字符串上执行URL百分号编码,也可以说是为了优化URL查询字符串的特殊需求。
querystring.escape('game=剑侠情缘');
//返回 'game%3D%E5%89%91%E4%BE%A0%E6%83%85%E7%BC%98'
querystring.escape('+-*/%#@!,.;:');
//返回 '%2B-*%2F%25%23%40!%2C.%3B%3A',可以看到-*!是会原样打出的其他的会被编码,详细参看URLEncode编码规则。
var escapeStr = querystring.escape('game=剑侠情缘&company=西山居');
//返回 'game%3D%E5%89%91%E4%BE%A0%E6%83%85%E7%BC%98%26company%3D%E8%A5%BF%E5%B1%B1%E5%B1%85'
querystring.unescape(escapeStr);
//返回 'game=剑侠情缘&company=西山居'
querystring.stringify(obj[, sep[, eq[, options]]])、querystring.parse(str[, sep[, eq[, options]]])
- obj <Object> The object to serialize into a URL query string
- sep <String> The substring used to delimit key and value pairs in the query string. Defaults to ‘&’.
- eq <String>. The substring used to delimit keys and values in the query string. Defaults to ‘=’.
- options
- encodeURIComponent <Function> The function to use when converting URL-unsafe characters to percent-encoding in the query string. Defaults to querystring.escape().
querystring.parse返回一个JSON对象,此时且所有的值都会变为字符串。
var obj = new Object();
obj.name = 'sword';
obj.age = 24;
obj.company = '西山居';
var str1 = querystring.stringify(obj);
//返回 'name=sword&age=24&company=%E8%A5%BF%E5%B1%B1%E5%B1%85'
querystring.parse(str1);
//返回 {name: 'sword', age: '24', compony: '西山居'}
var str2 = querystring.stringify(obj, ',', ':', {encodeURLComponent:undefined});
//返回 'name:sword,age:24,company:%E8%A5%BF%E5%B1%B1%E5%B1%85'
querystring.parse(str2, ',', ':');
//返回 {name: 'sword', age: '24', compony: '西山居'}
注意:最后一个encodeURLComponent的参数不管怎么填结果都是一样的。
该函数和 JSON.stringify(value [, replacer] [, space]) 有着很大的区别,详细请看鄙人的JSON模块一文:http://blog.csdn.net/chy555chy/article/details/52552548