我正在使用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变量.
我没有测试过这个,但我觉得这个理论很合理!