удаление кнопки и добавление неверного идентификатора документа в mongodb - PullRequest
0 голосов
/ 25 октября 2019

У меня есть веб-сайт с несколькими списками и кнопкой наблюдения, которая должна добавить запись в MongoDB для этого пользователя в качестве элемента наблюдения и удалить ее при повторном нажатии кнопки.

Проблема заключается в том, чтонезависимо от того, какая кнопка наблюдения нажата в любом списке, добавляется и удаляется только по одному. Если я нажимаю addToWatchList() для листинга № 1, а затем нажимаю addToWatchList() для листинга № 2, он удаляет листинг № 1 из списка наблюдения в MongoDB. Интерфейс передает идентификатор определенного идентификатора листинга, который используется для генерации уникального ключа в addToWatchList и для deleteWatchListItem() и addToWatchList()

addToWatchList(auctionId: string) {

    this.watchItStatus = true;
    this.userId = localStorage.getItem("userId: ");
    this.watchItemUniqueKey = this.userId + "|" + auctionId;

    this.watchListService.getWatchList(this.watchItemUniqueKey).subscribe((response) => {
        this.watchListItems = JSON.stringify(response);
        let substring = '"watchItems":null';
        let watchItemDoesntExist = this.watchListItems.includes(substring);
        if (!watchItemDoesntExist) {

            this.watchListService.deleteWatchListItem(auctionId);
        }
        else if (watchItemDoesntExist) {
            this.watchListService.addToWatchList(auctionId, this.watchItemUniqueKey);
        }
        if (this.watchListItems.includes("null")) {
            console.log("It's already active");
            this.watchListService.watchListItemActive = false;
        } else if (!this.watchListItems.includes(auctionId)) {
            console.log(this.watchListItems);
        }
    });
    this.watchButtonValue = "Remove from Watch List"
}

app.js

app.delete("/api/watchings/:watchItemUniqueKey", (req, res, next) => {
  Post.deleteOne({"value": {$eq: req.query.watchItemUniqueKey}}).then(result => {
    console.log(result);
    res.status(200).json({message: "Watch Item deleted!"})
  })

app.get("/api/watchings/:watchItemUniqueKey", (req, res, next) => {
  Watching.findOneAndDelete({"value": req.query.watchItemUniqueKey})
  .then(documents =>{
  res.status(200).json({
    message: "Watchlist Item Retrieved",
    watchItems: documents,
  });
});
});

watch-list.service.ts

  getWatchList(watchingId) {

    watchingId = watchingId.trim();
    return this.http.get<{   }>(
        'http://localhost:3000/api/watchings/' + watchingId
      );  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...