我正在使用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变量.
我没有测试过这个,但我觉得这个理论很合理!
原文地址:https://codeday.me/bug/20190612/1223243.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。