如何在 Ionic 3 / Angular 4 中将 Observable forkJoin 与 TransferObject 一起使用?

How to use Observable forkJoin with TransferObject in Ionic 3 / Angular 4?

我的服务器是 Express,使用 Multer 处理文件。

我得到了一个uploadArr的数组对象:

  var url = "http://192.168.8.101:3000/store_points_upload";

   let targetPaths = [];
   let filenames = [];
   let optionLists = [];
   this.displayTypesArr.map((dt) => {
     dt.storeDisplays.map((st) => {
       targetPaths.push(this.pathForImage(st.imageUrl));
       filenames.push(st.imageUrl);
       optionLists.push({
         fileKey: st.imageUrl,
         fileName: st.imageUrl,
         chunkedMode: false,
         mimeType: "multipart/form-data",
         params : {'fileName': st.imageUrl}
       })
     })
   })

   const fileTransfer: TransferObject = this.transfer.create();

   let uploadArr = [];
   for (let i = 0; i < targetPaths.length; i ++){
     uploadArr.push({
       targetPath: targetPaths[i],
       url: url,
       option: optionLists[i]
     });
   }
   Observable.forkJoin(
     uploadArr.map(i => fileTransfer.upload(i.targetPath, url, i.option))
     ).subscribe((res) => {
       console.log('success');
     });

这是我的服务器部分

var storage = multer.diskStorage(
{
    destination:function(req, file, cb){
        var filePath = appRoot + "/public/uploads/";
        cb(null,filePath);
    },
    filename:function(req,file,cb){
        var filename = file.originalname;
        console.log('filename', filename);
        if(filename != undefined){
            cb(null, filename);
        }
    }
});

//For multipart/form-data Uploading
var upload = multer({storage:storage});

router.post('/store_points_upload', cors(), upload.single('file'), storePoints.upload);

我在服务器中遇到 500 错误。

代码其实是正确的,我犯的错误是Multer的Option

 optionLists.push({
             fileKey: 'file', //change this from st.imageUrl to 'file'
             fileName: st.imageUrl,
             chunkedMode: false,
             mimeType: "multipart/form-data",
             params : {'fileName': st.imageUrl}
           })