javascript – 如何使用Multer文件过大时向客户端发送响应

我正在使用NodeJs Multer上传文件.当文件用户尝试上传时,我需要将响应发送回客户端.问题是onFileSizeLimit只有文件作为参数,我不知道如何向客户端发送响应.我需要做的基本上是如下所示:

app.use('/users/gyms/upload-logo', multer({
    // other settings here then:
    onFileSizeLimit: function (file) {
        // but res (response) object is not existing here
        res.json({
            message: "Upload failed",
            status: MARankings.Enums.Status.FILE_TOO_LARGE
            // status: -6
        });
    }
});

res对象dosent存在于那里,我想知道什么是向客户端发送某种响应的最佳方式.

解决方法:

在这种情况下,最好记住Multer本身只是一个(中间件)函数,Express调用它来获得响应.

你也许可以试试这个:

app.use('/users/gyms/upload-logo', function(req, res, next) {

    var handler = multer({

        // other settings here then:
        onFileSizeLimit: function (file) {

            // res does exist here now :)
            res.json({
                message: "Upload failed",
                status: MARankings.Enums.Status.FILE_TOO_LARGE
                // status: -6
            });

        }

    });

    handler(req, res, next);

});

这基本上将multer别名为handler,从Express回调传递req,res,next,这意味着你可以从Multer的配置中访问req,res,next变量.

我没有测试过这个,但我觉得这个理论很合理!

上一篇:javascript – 如何使用Multer提交可选文件提交表单?


下一篇:1345. 跳跃游戏 IV bfs