如果验证失败,则禁止Multer存储图像

时间:2019-04-17 08:06:16

标签: javascript node.js express multer express-validator

我有一个基于NodeJS + ExpressJS的RESTful Web服务,使用了application/jsonmultipart/form-data格式的内容。在multer的帮助下使用POST /api/products时,multipart/form-data路由支持上载图像文件。对于同一条路由,我使用express-validator来验证输入,最初用于验证基于JSON的输入。

如果对身体其余部分的验证(例如namedescription的模型字段验证失败),如何阻止multer存储图像文件?

router.post('/', multer({dest: '/tmp'}).single('image'), [

    body('name').not().isEmpty().withMessage('Should not be empty'),
    body('description').not().isEmpty().withMessage('Should not be empty')

], Controller.create);

由于中间件的顺序,当以后验证失败时,multer也会存储映像。 express-validator需要访问已解析的主体,因此不能在multer之前插入验证。

是否建议使用multer.memoryStorage()并在通过fs.writeFile()手动验证之后稍后将图像存储在控制器内部?

0 个答案:

没有答案