Мангуста найти одно не вернуть ничего - PullRequest
0 голосов
/ 16 января 2019

В UsersSchema я определил функцию для возврата объекта из БД, зная decoded._id и tokens.token:

UserSchema.statics.findByToken = function(token) {
  var User = this;
  var decoded;

  try {
      decoded = jwt.verify(token, 'abc123');
  } catch (e) {

      return Promise.reject();
  }

  return User.findOne({
    '_id': decoded._id,
    'tokens.token': token,
    'tokens.access': 'auth'
  });
};

По какой-то причине функция findOne возвращает null, хотя объект с таким идентификатором существует в базе данных.

Ответы [ 2 ]

0 голосов
/ 17 января 2019

Готово! Решено! Я обновил версию mongoose, в которой произошли критические изменения, и функции начали выходить из строя внутри другого модуля. Я заменил их новыми, и это работает!

0 голосов
/ 16 января 2019

Я думаю, это потому, что вы не ожидаете разрешения асинхронного запроса

попробуйте это,

UserSchema.statics.findByToken = async function(token) {
  var User = this;
  var decoded;

  try {
      decoded = jwt.verify(token, 'abc123');
  } catch (e) {

      return Promise.reject();
  }

  return await User.findOne({
    '_id': decoded._id,
    'tokens.token': token,
    'tokens.access': 'auth'
  });
};
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...