MulterError:文件太大:如何处理此错误?

问题描述 投票:0回答:1

我正在构建一个注册功能并上传个人资料图片并将其发送到后端。那里有 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)
node.js mern multer
1个回答
0
投票

您需要从路由处理程序/控制器中调用它,如文档中所述:错误处理

例如:

将其从路线中删除:

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.
    })
}
© www.soinside.com 2019 - 2024. All rights reserved.