Javascript findOne返回null,但不应返回(mongoDB)

Javascript findOne返回null,但不应返回(mongoDB),javascript,node.js,mongodb,mongoose,Javascript,Node.js,Mongodb,Mongoose,我只是在问自己,为什么我的模板不应该返回null 这是我的收获: await this.findOne({name}, async (template) => { console.log(template); if (template) return cb(new Error('Template already exists')); 我确信它应该返回已经存在的错误模板,因为我的数据库中存在具有此名称的文档 有人知道为什么吗?只需在最后调用.exec()即可获得承诺,并使用

我只是在问自己,为什么我的模板不应该返回null

这是我的收获:

await this.findOne({name}, async (template) => {
    console.log(template);
    if (template) return cb(new Error('Template already exists'));
我确信它应该返回已经存在的错误模板,因为我的数据库中存在具有此名称的文档

有人知道为什么吗?

只需在最后调用
.exec()
即可获得承诺,并使用wait获得这样的值

const template = await this.findOne({name}).exec();
// do something here with template

当您提供回拨时,为什么要在前面等待?还有,你为什么在你面前给出async回调函数呢?我对nodeJs很陌生(4-5个月),但是一个nodeJs开发人员告诉我要这么做,所以我真的不知道:/我想说,这只是函数的一部分,这就是为什么我添加了一个答案。让我知道它是否有效。好的,谢谢,我不知道。exec(),它现在有效;)如果我在回调中添加err,它也会起作用