Увеличение данных (MongoDB) по каждому клику (Angular / Node) в виде кнопки «Мне нравится» в Facebook - не работает - PullRequest
0 голосов
/ 13 января 2020

Я хотел бы добавить кнопку «Мне нравится» в моем приложении, но она не работает. У меня не было какого-либо конкретного сообщения об ошибке, только 400 (неправильный запрос).

Вот что я сделал:

post. HTML

<button (click)="onStar(post._id,post.like)"> {{ post.like }} fans </button>

post.TS

onStar(id:string,like:number) {
    like ++
    this.postService.updateLike(id,like).subscribe(
      (res) => {
        console.log('ok')
      }, (error) => {
        console.log(error)
      }
    )
  }

post.service.TS

  updateLike(id:string, like:number) {
    let url = `${this.uri}/like/${id}`;
    console.log(like + ' + ' + id)
    return this.http.put(url, like,  { headers: this.headers }).pipe(
      catchError(this.errorMgmt)
    )
  }

Node.JS контроллер:

exports.addLike = (req, res, next) => {
  Post.updateOne({ _id: req.params.id }, { like , _id: req.params.id })
    .then(() => res.status(201).json({ message: 'Great!'}))
    .catch(error => res.status(400).json({ error }));
}

Node.JS маршрут:

router.put('/like/:id', stuffCtrl.addLike);

Большое спасибо заранее за вашу помощь:) Хорошего дня! Rachel

1 Ответ

0 голосов
/ 13 января 2020

Я верю console.log - это не обещание. Попробуйте закомментировать или удалить эту строку:

Post.updateOne({ _id: req.params.id }, { like , _id: req.params.id })
    .then(() => res.status(201).json({ message: 'Great!'}))
    .catch(error => res.status(400).json({ error }));
...