我有两个模型,他们都有用户。让我们称他们为:findOne的loopback拦截器
Users_A Users_B
我必须找到Users_A用户,但是如果它不存在Users_A然后我必须在Users_B搜索。
如果用户存在于USER_B那么我想退货的时候我叫Users_A.findOne()
有没有办法做到这一点?
我有两个模型,他们都有用户。让我们称他们为:findOne的loopback拦截器
Users_A Users_B
我必须找到Users_A用户,但是如果它不存在Users_A然后我必须在Users_B搜索。
如果用户存在于USER_B那么我想退货的时候我叫Users_A.findOne()
有没有办法做到这一点?
您可以创建远程方法来实现此任务,并定义异步瀑布方法以通过多个模型运行代码。在远程方法执行 :
例如
async.waterfall([
function(callback){
//find results on USERS_A
},
function(data,callback){
//find results on USERS_B
}],
function(err){
if(err) console.log(err);
//return final result from either USERS_A or USERS_B
}
);
希望这种方法将有帮助。
欢呼声。
我解决它以这样的方式
Users_A.afterRemote('findOne' function(ctx, instance, next) {
if (ctx.result) {
return next();
} else {
Users_A.app.models.Users_B.findOne(ctx.req.query.filter,
(error, data) => {
if (data) {
//some logic here
return next();
} else {
//instance the error
return next(error);
}
}
}
}
为我工作,希望它有助于
谢谢Chamal的回答。我不知道这是否会奏效,但我发布了答案,我设法解决它。 – ngonzalezparra