0

私は羽のフックで羽毛サービスの問題に直面しています。正確に問題は、フェザーフックでフェザーサービスを使用していることです。フックでサービスを呼び出すと、メモリー問題が発生するように複数回実行されます。私の質問は、複数のサービスを実行するのを避ける方法です。feathers.jsを使用して複数回サービスをフックで実行しないようにするにはどうすればよいですか?

function orders(hook){ 
    return new Promise((resolve,reject) =>{ 
     hook.app.service('orders') 
     .find(hook.app.query) 
     .then(result => { 
      resolve(result.data) 
     }).catch(e =>{ 
     reject(e) 
     }) 
    }) 
} 

私の予想される解決策は、サービスが一度にフックで実行する必要があります。

答えて

2

サービスメソッドは理想的にはフックで自分自身を呼び出すべきではありませんが、そうした場合、無限ループで自身を呼び出すことがないように、中断条件が必要になります。これは、例えば、自己参照呼び出しをスキップするパラメータが設定されていない場合は、それをスキップします。

app.service('myservice').hooks({ 
    before: { 
    find(hook) { 
     if(!hook.params.fromOtherHook) { 

     const newParams = Object.assign({ 
      fromOtherHook: true 
     }, hook.params); 

     return hook.service.find(newParams); 
     } 
    } 
    } 
}); 
関連する問題