求助,关于querystring这个module的bug,亲们遇到过么,怎么解决的
发布于 9 年前 作者 fantasticsoul 4097 次浏览 最后一次编辑是 8 年前 来自 问答

上代码示例:

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 回复

为何要用querystring

@jinceon 那该用什么,求答案

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

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

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

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

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

回到顶部