微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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变量.

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐