Cómo publicar una matriz de objetos con Chai Http

Estoy tratando de publicar una matriz de objetos con ChaiHttp como esto:

agent.post('route/to/api') .send( locations: [{lat: lat1, lon: lon1}, {lat: lat2, lon: lon2}]) .end (err, res) -> console.log err, res 

Devuelve un error de la siguiente manera:

  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 thr er; // Evento de ‘error’ no manejado ^

Error: comprobación incorrecta del encabezado en Zlib._handle.onerror (zlib.js: 363: 17)

También intenté publicar así, como lo hacemos con el cartero:

 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 

pero payload.locations se recibe como un no definido.

¿Alguna idea de cómo publicar una matriz de objetos a través de chai-http?

EDITAR:

Aquí está mi ruta y creo que hay algo mal con la carga útil de la transmisión:

 method: 'POST' path: config: handler: my_handler payload: output: 'stream' 

Tuve el mismo problema aquí. Parece que simplemente la documentación chai-http es incorrecta. Se dice:

 // Send some Form Data chai.request(app) .post('/user/me') .field('_method', 'put') .field('password', '123') .field('confirmPassword', '123') 

Lo que NO funciona. Esto funcionó para mí:

 chai.request(app) .post('/create') .send({ title: 'Dummy title', description: 'Dummy description' }) .end(function(err, res) { ... } 

Intente usar .send({locations: [{lat: lat1, lon: lon1}, {lat: lat2, lon: lon2}]}) . Porque .field('a', 'b') no funciona.

  1. body como datos de formulario

     .put('/path/endpoint') .type('form') .send({foo: 'bar'}) // .field('foo' , 'bar') .end(function(err, res) {} // headers received, set by the plugin apparently 'accept-encoding': 'gzip, deflate', 'user-agent': 'node-superagent/2.3.0', 'content-type': 'application/x-www-form-urlencoded', 'content-length': '127', 
  2. body como application/json

     .put('/path/endpoint') .set('content-type', 'application/json') .send({foo: 'bar'}) // .field('foo' , 'bar') .end(function(err, res) {} // headers received, set by the plugin apparently 'accept-encoding': 'gzip, deflate', 'user-agent': 'node-superagent/2.3.0', 'content-type': 'application/json', 'content-length': '105',