Удалите документ с помощью Mongoose и Express, нажав на кнопку

#javascript #node.js #mongodb #express #mongoose

#javascript #node.js #mongodb #выражать #мангуст

Вопрос:

Я пытаюсь удалить подключенную учетную запись через Express и mongoose. Когда пользователь нажимает на кнопку (подтверждение его желания удалить свою учетную запись), я хочу, чтобы его учетная запись была удалена из коллекции моего пользователя.

Мой HTML-код:

 <div class="button__remove">
     <button class="modal__submit modal__remove--ann" id="btn-remove">Annuler</button>
     <button class="modal__submit modal__remove--conf" onclick="location.href='/fr/supprimercompte'">Supprimer</button>
</div>
 

Мой экспресс-код:

 router.get('/supprimercompte', ensureAuthenticated, (req, res) => {
    User.findOneAndDelete({user: req.user, id: req._id}, (err, tasks) => {
        if (err) {
            res.status(500).send(err);
            res.redirect('/fr/compte')
        } else {
            const response = {
            message: "Todo successfully deleted",
            user: req.user
            };
            res.status(200).send(response);
        }
   });
})
 

РЕДАКТИРОВАТЬ: теперь my res.send — это именно то, что я хочу (полный пользовательский объект), но он не удаляется из моей базы данных MongoDB! В чем же проблема ?

Ответ №1:

вы должны указать идентификатор маршрута, например, с /:id помощью и отправить id его со стороны клиента на маршрут

 router.get('/supprimercompte/:id', (req, res) => {
        User.findByIdAndDelete(req.params.id, (err) => {
          if(err){
              res.redirect("/fr/compte");
          } else {
              res.redirect("/fr");
          }
       });
    })
 

для клиентской части

 `/fr/supprimercompte/${id}`
 

Комментарии:

1. Перенаправление работает, но не удаляет объект с этим идентификатором.

2. когда вы console.log (req.params.id ) не является ли undefind?

3. Это действительно так. Связана ли проблема с тем фактом, что у меня нет запроса на удаление в моем интерфейсе?