Я учусь создавать веб-сайт, используя nodejs, express, mongoose, handlebars. проблема с удалением ответа на комментарий Javascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Гость
 Я учусь создавать веб-сайт, используя nodejs, express, mongoose, handlebars. проблема с удалением ответа на комментарий

Сообщение Гость »


Я учусь создавать веб-сайт, который позволит пользователям публиковать сообщения в блогах, комментировать блоги и отвечать на эти комментарии. Я использовал ответы[this] в схеме комментариев для работы с ответами на комментарии. Но у меня возникли проблемы с разрешением пользователю удалять эти ответы. Вот мой серверный код для удаления комментариев и ответов:

// Удалить конкретный комментарий или ответ app.get('/deleteComment/:postId/:commentId', requireLogin, async (req, res) => { пытаться { const currentUser = req.user; const {ResponseId} = req.query; const FoundPost = ждут Post.findById(req.params.postId); if (replyId) { // Если это ответ const комментарий = FoundPost.comments.id(req.params.commentId); const ответ = comment.replies.id(replyId); // Проверяем, является ли пользователь автором ответа if (reply.commentUser.toString() !== currentUser._id.toString()) { return res.status(403).send('В доступе отказано: вы можете удалять только свои ответы.'); } ответить.удалить(); } else { // Это комментарий верхнего уровня const комментарий = FoundPost.comments.id(req.params.commentId); // Проверяем, является ли пользователь автором комментария if (comment.commentUser.toString() !== req.user._id.toString()) { return res.status(403).send('В разрешении отказано: вы можете удалять только свои комментарии.'); } комментарий.удалить(); } дождитесь FoundPost.save(); res.status(200).send('Удален успешно'); } поймать (ошибиться) { console.log(ошибка); res.status(500).send("Произошла ошибка"); } }); Вот мой интерфейс

function deleteComment(postId, commentId) { const xhr = новый XMLHttpRequest(); xhr.open('GET', `/deleteComment/${postId}/${commentId}`, true); xhr.onreadystatechange = функция () { если (xhr.readyState === 4) { если (xhr.status === 200) { местоположение.перезагрузка(); } еще если (xhr.status === 403) { alert('В разрешении отказано: вы можете удалять только свои комментарии.'); } еще { alert('Произошла ошибка при удалении комментария.'); } } }; xhr.отправить(); } Ответы хранятся как объекты в массиве внутри массива комментариев в mongoose. комментарии: Массив 0: Объект commentUser ObjectID: 650 commentBody: «Привет, мир» Дата создания: 2023 г. ответы: Массив 0: Объект комментарийПользователь: Объект commentBody: «Ответы Hello World» Дата создания: 2023 г.

Каждый раз, когда я пытаюсь удалить ответ, я получаю ошибку 404. Я могу удалять комментарии, это просто ответы. Я пробовал множество вещей, таких как изменение маршрутов и функций, включение в них AnswerId, но он продолжает выдавать ошибку 404. Есть идеи, почему это не работает?
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»