两个模块都有parse和stringify方法啊,他们有什么区别呢?
require('qs').parse(require('url').parse('https://xxx.com/xxx?from=xxx').search)
// { '?from': 'xxx' }
require('query-string').parse(require('url').parse('https://xxx.com/xxx?from=xxx').search)
// { from: 'xxx' }
简单来说就是qs可以转换任意类json格式的数据,而querystring只能转换平面数据结构,qs的功能更加强大
https://stackoverflow.com/que...
说说:其实,JSON、queryString、qs这三个库核心都是两个方法,对象转<==>字符串,字符串<===>对象....,都有stringify
和parse
两个方法
代码JSON:参考developer.mozilla JSON.parse
实例1,json实例
var json = '{"result":true, "count":42}';
const obj = JSON.parse(json);
console.log(obj.count);
// expected output: 42
console.log(obj.result);
// expected output: true
const jsonNewStr = JSON.stringify(obj);
console.log(jsonNewStr);
// expected output:{"result":true,"count":42}
代码实例见:
querystring中文版说明
querystring英文版说明
import { parse, stringify } from 'querystring';
//或者 const querystring = require('querystring');
var assert = require('assert');
var data = querystring.parse('foo=bar&abc=xyz&abc=123');
返回对象形如:
-- {
-- foo: 'bar',
-- abc: ['xyz', '123']
-- }
querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' });
// 返回 'foo=bar&baz=qux&baz=quux&corge='
querystring.stringify({ foo: 'bar', baz: 'qux' }, ';', ':');
// 返回 'foo:bar;baz:qux'
代码实例参见:npm qs
qs出来的迟,和querystring功能是一样的,感觉会更流行和强大.
实例2:qs实例
import qs from 'qs';
import assert from 'assert';
或者
// var qs = require('qs');
// var assert = require('assert');
var obj = qs.parse('a=c');
assert.deepEqual(obj, { a: 'c' });
var str = qs.stringify(obj);
assert.equal(str, 'a=c');
8 回答4.7k 阅读✓ 已解决
6 回答3.4k 阅读✓ 已解决
5 回答2.8k 阅读✓ 已解决
5 回答6.3k 阅读✓ 已解决
4 回答2.3k 阅读✓ 已解决
4 回答2.8k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
两个完全不同的模块...虽然经常有人是
const fs=require("querystring")
。然而它们没半毛钱关系querystring(文档)是node的核心模块,主要用来自定义url的分隔符,大概像这样:
qs模块需要通过npm安装,最早是由TJ大神编写的。它是
A querystring parser with nesting support
,即一个支持嵌套的查询字符串解析器
,示例:看上去有些奇葩,不过我看它昨天有
738,087
的下载量,估计有很多模块是依赖它的。