我正在构建一个注册功能并上传个人资料图片并将其发送到后端。那里有 multer 处理它。文件大小限制设置为 100kb。 一切正常。 但是当我上传大于100 kb的文件时, 这个错误来了:
MulterError:文件太大
但我想要的是,如果出现此错误,我只想直接发送响应:
res.status(400).json({error : "File size too large"})
我已经在前端处理了这个资源。
如果 multer 给出文件太大错误,如何发送上述响应?
我的 multer 中间件代码:
import multer from "multer";
const storage = multer.diskStorage({
filename: function (req, file, callback) {
callback(null, file.originalname);
}
});
const upload = multer(
{ storage: storage ,
limits: { fileSize: 1024 * 100 }
}
);
export default upload
我的路线代码:
router.post('/signup' , upload.single('image') , signup)
您需要从路由处理程序/控制器中调用它,如文档中所述:错误处理
例如:
将其从路线中删除:
router.post('/signup', signup);
现在从路由处理程序中调用它,然后处理错误:
upload.single('image');
export function signup(req, res) {
upload(req, res, function(err) {
if (err instanceof multer.MulterError) {
// A Multer error occurred when uploading.
res.status(400).json({error : "File size too large"})
} else if (err) {
// An unknown error occurred when uploading.
}
// Everything went fine.
})
}