使用Express中的多部分表单数据向外部API发出POST请求

时间:2014-11-20 23:17:31

标签: javascript node.js post express multipartform-data

我正在为一门课程开发一个应用程序,但我无法将照片上传工作。我没有遇到其他端点的麻烦,但是这个特殊的端点让我已经坚持了一个星期了。下面我从iNaturalist API reference复制了我遇到问题的部分。

  

POST / observation_photos

     
    
      

需要验证。       将照片添加到观察中。这仅适用于iNat托管的照片。要添加托管在其他服务上的照片,请参阅POST /观察和PUT /观察/:id。

             

PARAMS

             

observation_photo [observation_id]
      收到此照片的观察的ID       允许值:有效的iNat观察ID
      
      的文件
      照片数据       允许值:多部分照片数据

    
  

在前端,我有这个表格。我确保只上传.png图片。

 form(role='form', method='post', enctype='multipart/form-data')
   div.form-group
     input.form-control#image(type='file', accept='png', name='file')
   button.btn.btn-default(type='submit') Submit

以下是我在尝试按照API说明执行POST请求时的代码摘录。

var express = require('express');
var router = express.Router();
var Client = require('node-rest-client').Client;
var multipart = require('connect-multiparty');
var multipartMiddleware = multipart();

router.post('/playground', multipartMiddleware, function(req,res){
    client = new Client();

    var args = {
        parameters:{'observation_photo[observation_id]': '1055033', //id for a record
                    'file' : req.files.file},
        headers:{'Authorization': 'Bearer ' + token}
    }

    client.post('https://inaturalist.org/observation_photos',args, function(data,response){
        console.log(response.body);
        res.send(data);
    });
}

我想我的困惑是文件参数以及POST端点对该参数的期望。任何帮助将不胜感激。

0 个答案:

没有答案