猫鼬查询返回错误,但错误是我要寻找的结果

时间:2019-02-23 19:43:35

标签: javascript node.js mongodb express 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 :(得分:3)

根据文档: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))

doc是实际的文档,最终会有错误

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

答案 1 :(得分:1)

使用.then()并兑现承诺后,您将在then()中得到结果。

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

当承诺被拒绝时,您可以在以下位置捕获错误:

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

Promise具有三个阶段resolverejectpending