Multer 上传文件 + JSON 对象

Multer upload file + JSON object

是否可以使用 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()...

您的客户端代码看起来像是使用了 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);