数组无意中被转换为具有超级测试的对象
array unintentionally gets converted to object with supertest
下面的数组 (query.conditions) 以某种方式转换为对象,
知道为什么以及如何防止它吗?
要求:
supertest(options.url)
.get('/api/action')
.expect(200)
.query({
conditions:
[
{ 'user' : user._id },
{ 'type' : 14 },
{ 'what' : 4 },
]
})
服务器获取的内容:
{
"conditions": {
"user": "5592cc851f3febd016dae920",
"type": "14",
"what": "4"
}
}
superagent
中好像有issues with query string serialization(被supertest
使用)
要解决此问题,您可以对数据使用 qs.stringify()
:
var qs = require('qs');
...
supertest(options.url)
.get('/api/action')
.expect(200)
.query(qs.stringify({
conditions:
[
{ 'user' : user._id },
{ 'type' : 14 },
{ 'what' : 4 },
]
}))
(如果可能的话,POST JSON 可能更合适)
下面的数组 (query.conditions) 以某种方式转换为对象, 知道为什么以及如何防止它吗?
要求:
supertest(options.url)
.get('/api/action')
.expect(200)
.query({
conditions:
[
{ 'user' : user._id },
{ 'type' : 14 },
{ 'what' : 4 },
]
})
服务器获取的内容:
{
"conditions": {
"user": "5592cc851f3febd016dae920",
"type": "14",
"what": "4"
}
}
superagent
中好像有issues with query string serialization(被supertest
使用)
要解决此问题,您可以对数据使用 qs.stringify()
:
var qs = require('qs');
...
supertest(options.url)
.get('/api/action')
.expect(200)
.query(qs.stringify({
conditions:
[
{ 'user' : user._id },
{ 'type' : 14 },
{ 'what' : 4 },
]
}))
(如果可能的话,POST JSON 可能更合适)