Задержать Multer от сохранения изображения, если проверка не удалась - PullRequest
0 голосов
/ 17 апреля 2019

У меня есть веб-служба RESTful на основе NodeJS + ExpressJS, использующая отформатированный контент application/json и multipart/form-data. Маршрут POST /api/products поддерживает загрузку файлов изображений при использовании multipart/form-data с помощью multer . Для того же маршрута я использую экспресс-валидатор для проверки ввода, первоначально использовавшийся для проверки ввода на основе JSON.

Как я могу удержать multer от сохранения файла изображения, если проверка для остальной части тела, скажем, полей модели для name и description, не удалась?

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 сохраняет изображение также, если проверка не удалась позже. Экспресс-валидатору необходим доступ к уже проанализированному телу, поэтому вставка валидации перед multer невозможна.

Рекомендуется ли использовать multer.memoryStorage() и сохранять изображение позже внутри контроллера после проверки вручную с помощью fs.writeFile()?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...