关于koa和express解析get请求参数时结果不一样的问题
发布于 5 年前 作者 heguangda 3410 次浏览 来自 问答

请求URL为: /api/articles?payload%5Bpage%5D=1&payload%5Blimit%5D=3 解码是这样子的:?payload[page]=1&payload[limit]=3

koa的qeury 的值为: { ‘payload[page]’: ‘1’, ‘payload[limit]’: ‘3’ }

express的query的值为: { payload: { page: ‘1’, limit: ‘3’ } }

express解析出来的query才是我想要的

然后我查看了一下express和koa解析query的代码, express默认解析get请求参数用的是

var qs = require('qs');

koa默认解析get请求参数用的是node的内置模块

const qs = require('querystring)

不知道是不是这两个库的问题,最后我把koa也改成跟express使用一样的库去解析,然后我发现得到跟express一样是我想要的query了

最后问一下,是我使用koa的方法不对吗?还是koa所使用的querystring这个库的问题呀

1 回复

1.png 再仔细看了一下官网,貌似是这个原因,但是我不知道我这种 ?payload[page]=1&payload[limit]=3 写法算不算嵌套。

回到顶部