У меня возникают проблемы с передачей 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
});
Ссылки: