Я сталкиваюсь с ошибкой в моем маршруте комментария, и, хотя я понимаю, что он поступает из блока Catch , я не могу найти точную проблему. Все остальные функции в моем коде работают отлично - только эта часть терпит неудачу. Я пробовал несколько подходов, но все еще не могу его разрешить. < /P>
Frontend (React) - обработчик Onsubmit
Когда пользователь подчиняет форму, эта функция выполняет: < /p>
Код: Выделить всё
const onSubmit = async (data) => {
try {
console.log("Comment is ", data.Comment);
const response = await postComment(id, { Comment: data.Comment });
console.log("Response data", response.data);
setComments(prevComments => [...prevComments, response.data]);
toastSuccess("New comment added successfully");
reset();
} catch (error) {
toastError(error.message);
if (error.response?.status === 401) {
navigate("/login");
toastError(error?.response?.message);
}
}
};
[*] Ранее я использовал axios.post напрямую, но позже перенес его в отдельный Api.jsx и импортированный postcomment . .
[*] При успехе я обновляю список комментариев, используя оператор спреда, показываю успешный тост и сбросьте форму.
Если пользователь не вошел в систему (
Код: Выделить всё
401
Код: Выделить всё
module.exports.postComment = async (req, res) => {
try {
let postId = req.params.id;
if (!req.user || !req.user._id) {
console.log("You must be logged in first");
return res.status(401).json({ message: "Unauthorized: Please log in first." });
}
const userId = req.user?._id || null;
let newComment = new CommentListing({
Comment: req.body.Comment,
userName: userId,
date: new Date(),
postId: postId
});
let savedComment = await newComment.save();
res.status(200).json(savedComment);
} catch (error) {
console.error("Error in catch block:", error);
res.status(500).json({
message: "Error posting comment",
error: error.message
});
}
};
< /code>
Это мой маршрут. JS Backend:
router.post( wrapAsync(postComment))
Это api.jsx для справки:
Код: Выделить всё
export const postComment = (id, commentData) => API.post(`/tools/${id}/comment`, commentData);
Все остальное (сеансы, cors, axios) работает нормально - только маршрут комментариев не удается. Скриншот ошибки для справочной.>
Подробнее здесь: https://stackoverflow.com/questions/795 ... ternal-ser