2017-10-06 10 views
0

私は2つのモデルを持っていて、どちらもユーザを持っています。それらを呼ぶことにしましょう:findOneのループバックインターセプタ

Users_A Users_B

私はUsers_Aでユーザーを見つける必要があるが、それはUsers_Aに存在しない場合、私はUsers_Bで検索する必要があります。ユーザーはその後、私はUsers_A.findOneを呼び出すときにそれを返すようにしたいUser_Bへ上に存在する場合

()

はこれを行う方法はありますか?

答えて

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

こと、それは