Попытка опубликовать multipart/form-data с супертестом node.js

Я пытался использовать супертест Node.js для тестирования некоторого REST API, который я написал. Мне нужно отправить запрос, эквивалентный следующему запросу CURL:

curl -X POST -F api_key=KEY -F image=@my_file http://localhost:3000/v1/upload

Я пробовал следующее, но получил Uncaught TypeError: first argument must be a string or Buffer.

request.post('/v1/upload')
.type('form')
.field('api_key', 'abcd')
.attach('image', 'some path')
.end(function(err, res) {
  res.body.error.should.equal('Invalid username/api_key.');
  done();
});

Я также попытался отправить его следующим образом:

request.post('/v1/upload')
.type('form')
.field('api_key', 'abcd')
.attach('image', 'some path')
.end(function(err, res) {
  res.body.error.should.equal('Invalid username/api_key.');
  done();
});

но сервер может анализировать только запрос на загрузку файла, а не api_key.


person Sankha Narayan Guria    schedule 08.08.2015    source источник


Ответы (1)


Попробуйте удалить .type('form') из своих тестов, потому что он установит application/x-www-form-urlencoded в качестве Content-Type вместо multipart/form-data.

person xmikex83    schedule 08.08.2015