求助,关于querystring这个module的bug,亲们遇到过么,怎么解决的
 发布于 10 年前  作者 fantasticsoul  4474 次预览  最后一次回复是 10 年前  来自 问答 

上代码示例:

var postData = { “id”: “eee”, “data”: {“sid”: “bb”}, “game”: {“gameId”: “aa”}, “sign”: “11” }; console.log(require(“querystring”).stringify(postData));// 打印 id=eee&data=&game=&sign=11 看到没data和game的值丢了,这样的话post到服务器的数据就不对了,(>_<),求怎么解决,querystring这个函数我看了 ,他没考虑到value是对象的情况啊

如果 var postData = { “id”: “eee”, “data”: “ddd”, “game”: “eee”, “sign”: “11” }; console.log(require(“querystring”).stringify(postData));// 打印 id=eee&data=ddd&game=eee&sign=11 这个就是ok的

--------------------------------------------问题解决了-----------------------------------------------------
http请求里,'Content-Type': 默认是 'application/x-www-form-urlencoded',这种编码在post时,只能提交 { a: 1 , b : 1 } 类似这样的一层的json数据,要设置为  application/json,才能提交 { a: { b : 1 , c : 1 } , b : 1 }这样的多层的json数据
7 回复
jinceon

为何要用querystring

fantasticsoul

@jinceon 那该用什么,求答案

jinceon

一开始还以为你是要问 json转字符串

klesh

那个数据格式显然不是querystring.

alsotang

用这个库:https://www.npmjs.com/package/qs ,默认的 querystring 不支持嵌套

jinceon

@alsotang 你们是怎样发现那么多优质的库的。。。

alsotang

@jinceon 去看人家的源码啊。。。你可以看看这里 https://github.com/sindresorhus/awesome-nodejs