Отправка формы с файлом 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;
    }
  };

В чем ошибка?


Ответы (0 шт):