Передача дополнительных значений POST в другую функцию - PullRequest
0 голосов
/ 04 марта 2019

У меня возникают проблемы с передачей groupId по почте в мою функцию для его обработки, в основном я загружаю изображение, но мне нужно передать groupId, чтобы переименовать его в другую функцию, я использую реагированиеи выразить, чтобы сделать это:

  onFormSubmit = async (event) => {
    event.preventDefault();
    const { imageFile, currentGroupId } = this.state;
    var formData = new FormData();
    formData.append('groupImage', imageFile);
    const config = {
      headers: {
        'content-type': 'multipart/form-data'
      }
    };
    await api.post('/fileUpload/group', { currentGroupId }, formData, config );
  }

Мой маршрут:

router.post('/group', (req, res) => {
  fileuploadmanager.uploadFile(req, res);
});

И внутренняя сторона:

uploadFile(req, res) {
    const { uploadsPath } = this.porperties;
    const { currentGroupId } = req.body;//it prints but formData and config never comes here
    console.log("GROUP: ", currentGroupId);
    const storage = multer.diskStorage({
      destination: uploadsPath,
      filename: (req, file, cb) => {
        cb(null, `${file.fieldname}-${Date.now()}${path.extname(file.originalname)}`);
      },
    });

    const upload = multer({
      storage,
      limits: {
        fileSize: 1000000,
      },
      fileFilter: (req, file, cb) => {
        this.checkFileType(file, cb);
      },
    }).single('groupImage');

    upload(req, res, (err) => {
      if (err) {
        console.log(err);
      }
    });
  }

Отправка только formData и configработает, но не работает, если я добавляю groupId к конечной точке.Я попытался добавить это значение в formData, но не могу получить его на стороне сервера, поэтому теперь я пытаюсь передать его как req.body, оно работает нормально, но другие мои параметры не передаются на сервер.

Как я могу передать свой groupId, formData и config моей стороне сервера?

РЕДАКТИРОВАТЬ: api - это оболочка для указания моего внутреннего URL.Я использую axios

import axios from 'axios';

export default axios.create({
  baseURL: process.env.REACT_APP_API_URL  
});

Ссылки:

1 Ответ

0 голосов
/ 04 марта 2019

Попробуйте отправить все данные в один объект await api.post('/fileUpload/group', { currentGroupId, formData, config }); Затем получите данные в uploadFile(req, res) { const postData = req.body;;Это должно решить проблему.

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