Я использую звонок на new FormData()
. Вкладка сети показывает, что полезная нагрузка правильная. В консоли я получаю следующую ошибку:
{message: "Blog validation failed: title: Path `title` is required., postBody: Path `postBody` is required."}
Однако на вкладке сети отображается отправка полей title и postBody:
Вывод заголовков вкладки сети
Сервер написан с nodejs и использует mongodb. Все маршруты работают на бэкэнде при тестировании. Данные отправляются нормально при тестировании с использованием файла .rest, но я все еще новичок в узле, поэтому я также опубликую свой обработчик для маршрута отправки:
router.post('/', async (req, res) => {
const blogPost = new Blog({
title: req.body.title,
author: req.body.author,
postBody: req.body.postBody,
postDate: req.body.postDate
})
try {
const newPost = await blogPost.save();
res.status(201).json(newPost);
} catch (err) {
res.status(400).json({ message: err.message })
}
})
Как я уже говорил, при создании вызовы по этому маршруту напрямую с использованием файла .rest все работает нормально.
Вот мой обработчик отправки формы на веб-интерфейсе:
handleSubmit = (event) => {
event.preventDefault();
const data = new FormData(event.target);
console.log(event.target);
console.log(data);
console.log(event.target.postBody.value);
fetch('http://localhost:4000/blog', {
method: 'POST',
mode: 'cors',
body: data
})
.then(res => res.json())
.then(err => console.error(err))
}
Может быть, я неправильно понимаю использование new FormData()
?