javascript - mongoose 与 then 和 catch 链接

标签 javascript mongoose

如何将此函数转换为与 then 和 catch 的链接?
链式更好吗?
我的意思是 User.findOne().then().catch()

User.findOne({_id: msg.chat.id}, (err, doc) => {
    if (err) {
      console.log(err);
    }

    if (doc) {
      console.log(doc.name);
    } else {
      console.log('Empty');
    }
  });

最佳答案

如果操作成功,则使用返回的文档(或 null)调用传递给 then 的函数;如果操作失败,则使用返回的文档(或 null)调用 catch 并返回错误(例如没有连接)。把它们放在一起看起来像这样:

User.findOne({_id: msg.chat.id})
    .then(doc => {
        if (doc) {
            console.log(doc.name);
        } else {
            console.log('Empty');
        }
    }).catch(err => {
        if (err) {
            console.log(err);
        } 
    });

顺便说一句,当您通过 id 搜索一个文档时,可以使用 findById:

User.findById(msg.chat.id)
    .then(doc => {
        if (doc) {
            console.log(doc.name);
        } else {
            console.log('Empty');
        }
    }).catch(err => {
        if (err) {
            console.log(err);
        } 
    });

关于javascript - mongoose 与 then 和 catch 链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48453429/

相关文章:

node.js - 是否在 Mongoose 良好实践之上使用 Joi 进行验证?

javascript - 如何使用 JavaScript 中的正则表达式查找 HTML 邮件中的 HTTP 链接

javascript - 如何根据容器高度和宽度拉伸(stretch)内容图标跨度元素的 50% 宽度和 100% 高度

javascript - 如何保存传单 map ?

node.js - 更新并指定 addToSet 的键

node.js - 如何在 mongoose 中使用 Express 填充的情况下不应用?

node.js - 模型相互引用错误 : circular dependencies problem

javascript - ionic 2中后台进程调用api

javascript - 添加 office.js 在 url 中添加#,然后将其删除

javascript - 使用 NodeJS 将 Unix 纪元时间戳保存为 Mongoose Schema 类型日期