У вас может быть промежуточное программное обеспечение проверки ДО промежуточного программного обеспечения multer.Таким образом, когда проверка завершится неудачно, все последующие промежуточные программы не будут выполнены - и, следовательно, файлы не будут загружены.
Отделите проверку следующим образом:
const validateSeamUpload = (req, res, next) => {
const { error } = validateSeam(req.body);
if (error) return res.status(400).send(error.details[0].message);
return next();
};
А затем смонтируйте validateSeamUpload
ДО промежуточного программного обеспечения seamUpload
следующим образом:
router.post("/", [auth, validateSeamUpload, seamUpload], async (req, res) => {
/** No need for validation here as it was already done in validateSeamUpload */
const seam = new Seam({
stylePicture: req.files["stylePicture"][0].path,
materialPicture: req.files["materialPicture"][0].path,
description: req.body.description,
deliveryDate: req.body.deliveryDate,
customer: req.body.customerId
});
await seam.save();
res.send(seam);
});
Кстати, вы также можете передать их в качестве аргументов post()
.Вот так:
router.post("/", /** => See, no need for an array */ auth, validateSeamUpload, seamUpload, async (req, res) => {
/** your controller code */
});