2016-08-20 8 views
1

JavaScriptで生成されたメソッド(具体的には__get__accessTokens)を使用したいと思います。私はこの機能(ユーザーのトークンを取得する)がREST APIエクスプローラーを使ってうまく動作することをテストすることができますが、プログラムで生成されたメソッドにアクセスする方法の例とその署名は何も見つかりません。私は(MemberがデフォルトUserモデルを拡張)必要なものの例:ループバック:JavaScriptを使用して生成されたメソッドを実行する

モデル/ member.jsこのため

module.exports = function(Member) { 
     Member.__get__accessTokens(...) 

     // or if I have a specific user (e.g. after executing findById) 
     Member.findById(id, function(err, member) { 
      member.__get__accessTokens(...)  
     });   
} 

答えて

1

することはできユーザーafterRemotebeforeRemote方法。

module.exports = function(Member) { 
     Member.beforeRemote("__your methods__", function(ctx, inst, next){ 
     var accessToken = ctx.req.accessToken; 
     app.models.Member.findById(accessToken.userId, function(err, usr){ 
      //Process here.... 
     } 
     next(); 
    } 
    } 

OR

あなたは現在のコンテキストを使用することができます。 https://docs.strongloop.com/display/public/LB/Using+current+context

+0

現在のコンテキストを使用することは推奨されていないため、最初の解決策に固執しようとします。 – ierax

1

あなたは、コンテキストからアクセスすることができます

module.exports = function(Product) { 
    var app = require('../../server/server') 

    Product.afterRemote('create', function(ctx, modelInstance, next) { 
     var accessToken = ctx.req.accessToken 

     // get Customer (User) by using the user id in token object 
     app.models.Customer.findById(accessToken.userId, function(err, user) { 
      modelInstance.createdBy = user.username 
      next() 
     }) 
    }) 
} 

私は、REST APIを介してモデルを作成したユーザー名をキャプチャするために、コードのこの部分を使用します。 here

関連する問題