exec()方法在创建查询中的用法

时间:2018-09-16 16:55:58

标签: node.js mongoose callback

我遇到一种情况,我想将所有业务逻辑和回调放在一个位置,将猫鼬查询放在一个位置。因此,我为此使用.exec()方法并在服务模块中处理其回调。我成功使用exec()查找查询

存储模块:

const findAUser = userName => {
    return Users.findOne({username: userName});
}

服务模块

repository.findAUser(user.username).exec((error, document) => {
            console.log(document);
            if(error) {
                rejectGeneric(reject);
            } else {
                  ..............................

但是我无法通过创建查询猫鼬来实现同样的目的

const createAUser = user => {
    return Users.create(user);
}

下面的代码不起作用

repository.createAUser(user).exec((error, document) => {
    ....................................
}

如何在猫鼬创建查询中使用exec()方法?有什么办法可以做到这一点?

1 个答案:

答案 0 :(得分:0)

我已经通过使用回调选项解决了这个问题,我的解决方案如下:

存储库

    const createAUser = (user, callback) => {
        return Users.create(user, (error, document) => callback(error, document));
    }

服务

    repository.createAUser(user, (error, document) => {
        if(error) {
            // Do stuff for error handling
        } else {
            // Do stuff for success scenario
        }
    });