Когда я отправляю данные с помощью почтальона, проходит заголовок, описание и изображение, которое я отправляю.
Это мой массив сообщений:
router.post('/', uploadS3.array('meme',3),(req, res, next)=>{
// res.json(req.file.location)
console.log(`req.files =================${req.headers}`);
// console.log("req.file.location===",req.file.location, "req.body===",req.body);
const locationURL = req.files.map(item=>item.location);
//Send image alongside with other form fields
postModel.create({...req.body,image:locationURL}, (error, returnedDocuments) => {
if (error) return next(error);
res.json(returnedDocuments);
})
})
мой почтальон:
Когда я пытаюсь отправить данные, используя мой интерфейс,он не переходит к бэкэнду должным образом, ответ, который я получаю, является ничем, если я не включаю изображение, а заголовок и описание не передаются .... обратите внимание, что мой postModel ожидает, что заголовок и описание находятся внутри запроса.body
postModel.create({...req.body,image:locationURL}
Я отправляю данные, добавляя их к объекту FormData ()
Для ясности, setFiles является установщиком для файла const [file, setFiles] = useState({ selectedFile: null, loaded: 0 });
const onChangeFile = event => {
if (maxSelectFile(event) && checkMimeType(event) && checkFileSize(event)) {
setFiles({
selectedFile: event.target.files
});
}
console.log(event.target.files)
}
const submitFormHandle = event => {
const data = new FormData();
for (let i = 0; i < file.selectedFile.length; i++) {
data.append("meme", file.selectedFile[i]);
}
data.append("title", title);
data.append("description", description);
axios
.post("http://localhost:3200/api/posts/", data)
.then(res => {
toast.success('upload success')
})
.catch(err => {
toast.error('upload fail')
})
}