multer fields не сохраняет файлы
const multer = require('multer');
const storage = multer.diskStorage({
destination: (req, file, cb) => {
cb(null, 'uploads'); // Указываем путь до папки, куда сохранять файлы
},
filename: (req, file, cb) => {
const uniqueSuffix = Date.now() + '-' + Math.round(Math.random() * 1E9);
cb(null, file.fieldname + '-' + uniqueSuffix); // Генерируем уникальное имя файла
},
});
const upload = multer({ storage: storage });
const getFiles = upload.fields([
{ name: 'fileMRT', maxCount: 1 },
{ name: 'fileKT', maxCount: 1 }
]);
module.exports.files = (req, res, next) => {
getFiles(req, res, function (err) {
if (err instanceof multer.MulterError) {
next(err);
} else if (err) {
next(err);
}
console.log(storage.destination) //здесь undefined
console.log(storage.filename) //здесь undefined
//внутри кронтроллера req.files - undefined
next();
});
};
в форме использую
`encType="multipart/form-data"` <= React
Так же использую FormData
для составления объекта с данными
на клиенте все данные корректно отображаются.
на сервере ошибок не возникает
const {files} = require('../middlewares/multer')
router.patch('/:cardId', files, updateCardPatientFiles)
функция updateCardPatientFile
s отрабатывает без ошибок
перепробовал несколько вариантов использования Multer
через fields
, может что-то не так с указанием пути?
Источник: Stack Overflow на русском