user.save не будет запускать функцию обратного вызова - PullRequest
0 голосов
/ 08 июня 2018

Я пытаюсь сохранить информацию в моей пользовательской схеме в моей базе данных.Я делаю это с помощью «user.save», но по какой-то причине код в скобках не запускается.

user.save(function(err) {
                    //THIS CODE DOESNT SEEM TO RUN 
                  if (err) {
                    console.log(err);
                  } else {
                    res.json({ message: 'given a reset-token' })
                  }
                  //
                });

Поэтому я перешел на следующий код, так как мне нужно было получить сообщение об успехе отсервер:

  user.save((err) => {
            console.log('hello');
            if (err) {
              console.log(err);
              console.log('err2');
              res.status(404).json({ message: 'Save error' });
            }
          }).then(() => {
            res.status(201).json({ message: 'Activated' });
          });

Ведьма успешно отправляет мне код состояния, когда изменения в пользователе были переданы в базу данных.Кто-нибудь может объяснить, почему второй работает, а первый нет?А если есть лучший способ написать этот код?

1 Ответ

0 голосов
/ 08 июня 2018

Похоже, вы используете обещания, так что вы можете просто использовать .catch (), чтобы поймать ошибку

user
  .save()
  .then(() => {
    res.status(201).json({ message: "Activated" });
  })
  .catch(err => {
    console.log(err);
    console.log("err2");
    res.status(404).json({ message: "Save error" });
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...