Multer上传文件+ JSON对象

时间:2015-12-10 10:07:23

标签: javascript express file-upload http-post superagent

是否可以另外发送包含multer数据的文件和json对象? 我找到了this个帖子。但它只解释了当时如何附加一个字段。

这是我目前在客户端的内容:

request
  .post(uploadPOSTUrl)
  .set('Accept', 'application/json')
  .field('Test', object.TestField)
  .attach('file', file)
  .end((err, res) => {
    if (err) {

    } else {

    }
  });

和服务器端

 export function upload(req, res){
    console.log("UploadedJSON: ", req.body);
    console.log("UploadedFile: ",req.file); 
    res.status(204).end();
}

但不只是发送1个字段。我需要发送整个对象.field('Test', object)。当我这样做时,我在服务器端收到[Object object]并且无法访问这些字段。

我现在唯一的解决方案就是为我的对象中的每个字段循环并添加.field() ...

1 个答案:

答案 0 :(得分:1)

您的客户端代码看起来像是使用SuperAgent库,对吗?如果是这样,真正的问题是如何使用SuperAgent发送多部分请求,因为multer只处理multipart / form-data。

SuperAgent documentation for multipart requests显示您执行此操作的方法是重复.field()方法:

 request
   .post('/upload')
   .field('user[name]', 'Tobi')
   .field('user[email]', 'tobi@learnboost.com')
   .attach('image', 'path/to/tobi.png')
   .end(callback);