2016-10-21 17 views
0

Expressでは、resがストリームオブジェクトであるため、ストリーミング応答は簡単に実装できます。Feathersのストリーミング応答

しかし、Feathersのカスタムサービスメソッドの中で、どうすれば応答として何かを流すことができますか?

答えて

1

res.dataがストリームの場合はcustom response formatを実装し、サービスメソッドをストリームで解決できる場合があります。ストリーミングデータについての説明もあります。here

+0

いいアイデアのようです。試してみると、うまくいけばこの答えを受け入れるでしょう。しかし、何か正しいとは思わない。サービス自体が 'res.send'を呼び出さない場合はどうなりますか?私は、サービス後のミドルウェアの登録を覚えていません。 notFoundHandler、logger、およびerrorHandlerのみです。そして、サービス自体が 'res.send'を呼び出し、それの後にミドルウェアを追加すると、それは遅すぎませんか?サービスミドルウェア自体でないなら、私のために 'res.data'を送信するのは何ですか? –

+0

私が持っていたのと同じ質問があるかもしれない人たちを明確にするために、Feathersはすべての 'app.use'コールの後に自動的にデータ送信ミドルウェアを挿入するか、少なくともサービスミドルウェアを含むものになります。したがって、 'app.use(route、myService、myMiddleware)'のようなミドルウェアを追加すると 'myMiddleware'は' next'を呼び出さないので、Feathersのデフォルトのデータ送信ミドルウェアは呼び出されないので、 'myMiddleware'は'最後は「res」に関する。 @ダフ、私が間違っている場合は私を修正してください。 –

+0

それだけです。カスタムレスポンスハンドラは、基本的には自動的に挿入されるミドルウェアですが、以前と同じように機能するサービスレベルで自分自身を登録すると、ミドルウェアが挿入されます。 – Daff

関連する問題