2016-08-09 10 views
0

PUTリクエスト用のStrongLoopビルトインメソッドをオーバーライドしようとする問題に直面しています。StrongLoopオーバーライドPUTビルトインメソッド

Model.on('attached', function(){ 
    Model.updateAttributes = function(data, id, cb){ 
     cb(null,'This is a overridden method'); 
    }; 
} 

をしかし、私はPUT/API/V1 /モデル/ 1とエンドポイントを呼び出すと、ペイロードと、この機能は実行されませんが、中に組み込まれて:

のでmodel.jsファイルに私が使用しています1。私を助けるため

Model.updateAll = function([where], data, cb) { 
    cb(null, 'this is a overriden method'); 
} 

Model.create = function(data, cb) { 
    cb(null, 'this is overriden method'); 
} 

ありがとう:私はまた、他の代わりupdateAttributesのが、例えばのような任意の成功なしで機能を使用しようとしました。

答えて

3

代わりにメソッドをオーバーライドするのは、次のようにあなたが同じエンドポイントに新しい方法を無効にして添付することができます:

Model.disableRemoteMethodByName('updateAttributes'); 

Model.newMethod = function(cb) { 
    cb(null, 'new message'); 
} 

Model.remoteMethod('newMethod', { 
    returns: { 
    arg: 'msg' 
    }, 
    http: { 
    verb: 'put', 
    path: '/' 
    } 
}); 
+0

私は 'disableRemoteMethod'が廃止され、現在は' disableRemoteMethodByName'がなければならないことを示す警告がありました中古。一度それを使用すると、私は正常に組み込みメソッドをオーバーライドすることができました。どうもありがとう! – Trevor

+0

うれしかった!新しいAPIを反映するために私の答えを編集します – richardpringle

関連する問題