Запрос Mongoose возвращает ошибку, но ошибка - результат, который я ищу - PullRequest
0 голосов
/ 23 февраля 2019

В Mongoose, когда я вызываю приведенный ниже код:

db.Person.find({}).then((err, author) => {
   if (err) {
     console.log("err",err);
   } else {
    console.log('author', author);
    }
  });

, возвращается ошибка, а не искомый документ, и эта ошибка, похоже, является искомым документом.См. Здесь: enter image description here

Почему он возвращает ошибку вместо реального объекта?Я пытался получить доступ к свойствам из документа, который был возвращен.Объект существует в моей базе данных: enter image description here

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Когда вы используете .then() и обещание разрешено, вы получите результат в then().

.then((result) => console.log(result))

, когда обещание отклонено, вы можете отследить ошибку в:

.catch((error) => console.log(error))

Обещание имеет три фазы resolve, reject и pending.

0 голосов
/ 23 февраля 2019

Согласно документам: https://mongoosejs.com/docs/promises.html Вы должны использовать query.exec (), чтобы получить полное обещание:

// `.exec()` gives you a fully-fledged promise
var promise = query.exec();

promise.then(function (doc) {
  // use doc
});

Когда вы используете его как обещание,

.then((doc)=>console.log(doc))

документ является фактическим документом, возможная ошибка будет в

.catch(err=>console.log(err))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...