Я пытаюсь опубликовать массив объектов с ChaiHttp следующим образом:
agent.post('route/to/api')
.send( locations: [{lat: lat1, lon: lon1}, {lat: lat2, lon: lon2}])
.end (err, res) -> console.log err, res
Он возвращает ошибку, как показано ниже:
TypeError: first argument must be a string or Buffer at ClientRequest.OutgoingMessage.end (_http_outgoing.js:524:11) at Test.Request.end (node_modules/superagent/lib/node/index.js:1020:9) at node_modules/chai-http/lib/request.js:251:12 at Test.then (node_modules/chai-http/lib/request.js:250:21)
Events.js:141 метатель; // Необработанное событие "ошибка" ^
Ошибка: неправильная проверка заголовка в Zlib._handle.onerror (zlib.js:363:17)
Я также пытался опубликовать так, как мы делаем с почтальоном:
agent.post('route/to/api')
.field( 'locations[0].lat', xxx)
.field( 'locations[0].lan', xxx)
.field( 'locations[1].lat', xxx)
.field( 'locations[2].lat', xxx)
.then (res) -> console.log res
но payload.locations принимается как неопределенное.
Любая идея, как опубликовать массив объектов через chai-http?
ИЗМЕНИТЬ:
Вот мой маршрут, и я думаю, что что-то не так с полезной нагрузкой потока:
method: 'POST'
path:
config:
handler: my_handler
payload:
output: 'stream'
field
принимает строки в качестве второго аргумента. Вместо этого я использовалJSON.stringify
и сделал свой пост. Однако я понял, что основная проблема заключается либо в суперагенте, либо в выводе полезной нагрузки. - person Reza Owliaei   schedule 11.04.2016