上代码示例:
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数据
为何要用querystring
@jinceon 那该用什么,求答案
一开始还以为你是要问 json转字符串
那个数据格式显然不是querystring.
用这个库:https://www.npmjs.com/package/qs ,默认的 querystring 不支持嵌套
@alsotang 你们是怎样发现那么多优质的库的。。。
@jinceon 去看人家的源码啊。。。你可以看看这里 https://github.com/sindresorhus/awesome-nodejs