エラーフックからcontext.result
を設定するフックがあります。 これは、内部サーバー呼び出しによって呼び出された場合は機能しますが、外部クライアント要求によって呼び出された場合は機能しません。
ここで問題を再現する次のリポジトリを作成しました-https ://github.com/Mattchewone/feathers-buzzard-error-hooks
VSCodeでmochaテストを実行すると、サービス呼び出しでcontext.result
れ、応答が正しいことがわかりますが、クライアント呼び出しではcontext.result
が設定されますが、要求は引き続きエラーを返します。 。
context.returnHook
が内部で何をするかはわかりませんが、これはサーバー呼び出しの場合はfalse
ですが、クライアント呼び出しの場合はtrue
です。
ここのように見えます-https://github.com/feathersjs/express/blob/master/lib/rest/wrappers.js#L60およびhttps://github.com/feathersjs/socket-commons/blob/master/lib/ utils.js#L119は、最後のtrue
を追加しています。ここでは、 https://github.com/feathersjs/feathers/blob/master/lib/hooks.js#L35がreturnHook
設定しています。 returnHook
をtrueに設定すると、 context.result
無視され、元のエラーが返されます。
確かに、そこには間違いなく欠陥のある論理があります。 https://github.com/feathersjs/feathers/pull/769で修正され、まもなく公開されます。
@dafflに感謝します。
この問題は、クローズされた後、最近のアクティビティがないため、自動的にロックされています。 関連するバグについては、この問題へのリンクを含む新しい問題を開いてください。
最も参考になるコメント
確かに、そこには間違いなく欠陥のある論理があります。 https://github.com/feathersjs/feathers/pull/769で修正され、まもなく公開されます。