我遇到一种情况,我想将所有业务逻辑和回调放在一个位置,将猫鼬查询放在一个位置。因此,我为此使用.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()方法?有什么办法可以做到这一点?
答案 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
}
});