2017-10-06 82 views
0

我有两个模型,他们都有用户。让我们称他们为:findOne的loopback拦截器

Users_A Users_B

我必须找到Users_A用户,但是如果它不存在Users_A然后我必须在Users_B搜索。

如果用户存在于USER_B那么我想退货的时候我叫Users_A.findOne()

有没有办法做到这一点?

回答

0

您可以创建远程方法来实现此任务,并定义异步瀑布方法以通过多个模型运行代码。在远程方法执行 :

例如

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 
    } 
); 

希望这种方法将有帮助。

欢呼声。

+0

谢谢Chamal的回答。我不知道这是否会奏效,但我发布了答案,我设法解决它。 – ngonzalezparra

0

我解决它以这样的方式

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); 
      } 
     } 
    } 
} 

为我工作,希望它有助于