Отправка формы с файлом React
Пишу небольшое приложение типа галереи для загрузки фотографий. Загруженные фотографии с сервера получаю, а при отправке формы для загрузки в req.body на сервер приходит пустой объект, хотя в обработчике события формируется объект formData. Данные пытаюсь загрузить с помощью multer.
Сервер:
router.post("/photos", upload.single("path"), (req, res) => {
const photo = new PhotoModel(req.body);//тут пусто
const fileData = req.file;//и тут тоже
if (!fileData) {
res.status(400).json({ message: "Nothing to add" });
} else {
photo.save().catch((error) => {
res.status(400).json({ error: error.message });
});
PhotoModel.find()
.then((photos) => {
res.send(photos);
})
.catch((error) => {
res.status(400).json({ error: error.message });
});
}
});
Фронт:
const handleSubmit = (event) => {
event.preventDefault();
let newPhoto = new FormData();
newPhoto.append("name", form.name);
newPhoto.append("desc", form.desc);
newPhoto.append("path", form.file);
try {
const request = async () => {
const res = await fetch(`http://localhost:3001/api/photos`, {
credentials: "same-origin",
method: "POST",
body: newPhoto,
headers: {
"Content-Type": "multipart/form-data",
},
});
const data = await res.json();
if (!res.ok) {
throw new Error(data);
}
};
if (newPhoto) {
request();
}
} catch (error) {
return error;
}
};
В чем ошибка?