【问题标题】:Express.js / Multer. Response being sent before onFileUploadComplete is completeExpress.js / 穆尔特。在 onFileUploadComplete 完成之前发送响应
【发布时间】:2015-09-30 08:41:16
【问题描述】:

我将以下内容用于文件上传服务:

onFileUploadStart: function (file) {
        uploadPath = "";
        imageDimensions = null;
        console.log(file.originalname + ' is starting to upload...');
    },
onFileUploadComplete: function (file) {
        uploadPath = file.path;
        uploadPath = uploadPath.replace(/\\/g,"/");
        console.log("Upload complete. " + file.fieldname + ' uploaded to  ' + file.path)
        sizeOf(file.path, function (err, dimensions) {
            if (err){
                console.log("ERROR, Can't get size of image! " + err);
                return;
            }
            else{
                imageDimensions = { 
                    width : dimensions.width,
                    height: dimensions.height
                };
                console.log("Size of image: width: " + imageDimensions.width + ". height: " + imageDimensions.height);
            }

        });
    }

app.post('/imageupload',function(req,res){
  upload(req,res,function(err) {
    console.log("response is being send..");
    if(err) {
        return res.end("Error uploading file.");
    }
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    res.json({
        dimensions: imageDimensions,
        path: uploadPath
    });
});

});

据我了解 (https://stackoverflow.com/a/30458411/2742995) onFileUploadComplete 在执行 .post 处理程序之前首先处理。但是,我的控制台显示:

a.jpg is starting to upload...
Upload complete. file uploaded to uploadeddata\a1235412.jpg
response is being send..
Size of image: width: 2835, height: 1654

看来,在 onFileUploadComplete 函数的中间,.post 处理程序已经被执行了..

有什么办法可以解决这个问题吗?

【问题讨论】:

    标签: javascript express multer


    【解决方案1】:

    好的,明白了……我使用的 sizeOf 函数是异步的……

    var dimensions = sizeOf(file.path);
    

    是同步版本。

    【讨论】:

      猜你喜欢
      • 2020-02-16
      • 1970-01-01
      • 2014-10-29
      • 1970-01-01
      • 1970-01-01
      • 2016-07-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多