Я пытаюсь отправить изображение в запросе POST от реакции на nodejs.Однако мой сервер не получает файл и req.file не определен.Когда я тестирую код загрузки изображений с сервера с почтальоном, все работает нормально, поэтому я подозреваю, что что-то не так в интерфейсе.Кто-нибудь знает, что не так?Вот мой код:
Image_Upload.js (отправить изображение func, fileList [0] - это изображение):
onSubmitImage = e => {
const config = {
headers: {
"content-type": "multipart/form-data"
}
};
const formData = new FormData();
formData.append(
"image",
this.state.fileList[0]
);
axios
.post("/api/profile/img_upload", formData)
.then(res => console.log("Response: " + res))
.catch(err => console.log(err.response.data));
};
profile.js (получение конечной точки изображения):
router.post(
"/img_upload",
passport.authenticate("jwt", { session: false }),
(req, res) => {
upload(req, res, err => {
console.log(req);
if (err) {
res.status(400).json({ Error: err });
} else {
if (req.file == undefined) {
res.status(404).json({ error: "no file selected" });
} else {
res.json({ fileLoc: req.file.location });
}
}
});
}
);
img_upload.js (настройка мультитера):
const upload = multer({
storage: storage,
limits: { fileSize: 1000000 },
fileFilter: function(req, file, cb) {
checkFileType(file, cb);
}
}).single("image");
Любая помощь приветствуется
РЕДАКТИРОВАТЬ: я замечаю, что когда nodejs получает запрос от внешнего интерфейса, этов req.body вместо req.file.Так что я уверен, что проблема в реакции.Как я могу отреагировать, чтобы отправить его как req.file вместо req.body? Запрос изображения от Reacdt Front-end до Nodejs backend