web-dev-qa-db-ja.com

node.jsスーパーテストでmultipart / form-dataを投稿しようとしています

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は解析できません。

12

_application/x-www-form-urlencoded_ではなく_multipart/form-data_をContent-Typeとして設定するため、テストからremoving.type('form')を試してください。

10
xmikex83