NodeJS api rsponse не обрабатывается в angular интерфейсе - PullRequest
0 голосов
/ 05 апреля 2020

Я отправляю запрос на поставку от angular узлу api, который обновляет статус объекта предложения с ожидающего до онлайн, ответ контроллера возвращает ошибку 500, но при обновлении страницы статус предложения изменился!

  update(propositionID) {
    this.loading = true;
    this.http.put('/api/propositions/' + propositionID, { online: true }).subscribe(res => {
      this.loading = false;
      this.filteredPropositions.filter(proposition => proposition._id === propositionID)[0].status = "online";
      this.propositions.filter(proposition => proposition._id === propositionID)[0].status = "online";
      this.toastr.success('vous avez accepter cette proposition!');
      this.getProposition();
    })

  } 

export async function update(req, res) {
  try {
    let proposition = await Proposition.findOne({
      _id: req.params.id
    })

    if (!proposition) {
      return res.status(404).json({
        error: 'Proposition n\'existe plus!'
      })
    }

    if (req.body.description) proposition.description = req.body.description

    if (req.body.online) proposition.status = 'online'

    if (req.body.comment) proposition.comments.push(req.body.comment)

    proposition = await proposition.save()

    if (req.body.online) {
      console.log(req.body.online)
      const msg = 'Votre proposition de titre "' + proposition.title.substring(0, 10) + ' ..." a été approuvée par un administrateur de Baladiaty et maintenant en ligne!'
      const result = await createNotification(proposition.issuer, msg, 'proposition', proposition.status, proposition._id)
      const socket = req.app.get('socketio')
      const io = req.app.get('io')
      if (result.success == false) {
        console.log("notification result:", result.success)
        return res.status(400).json({
          error: result.error
        })
      }

      socket.emit('notifications', {
        notification: result.notification
      })
    }

    return res.json(proposition)
  } catch (error) {
    if (error.name == 'CastError') {
      return res.status(400).json({
        error: error.message
      })
    } else return res.status(500).end()
  }
}

сервер вернул 500 ошибок, но статус предложения изменился на онлайн! может кто-нибудь взглянуть и найти, откуда эта ошибка!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...