9

Mongo データベースから Koa アプリケーションのユーザー (Mongoose を使用) に大きな結果セットを送信しようとしています。

私はもともと次のようなものを持っていました:

var res = yield Model.find().limit(500).exec();
this.body = {data: res};

ただし、送信される結果セットのサイズが原因でアプリケーションがタイムアウトしたため、データベースからの応答をストリーミングしたいと考えています。

Mongoose を使用すると、次のようにして、クエリの結果をストリームに変換できます。

var stream = Model.find().limit(300).stream();

ただし、必要な形式を維持しながら、このストリームを応答に書き込む方法がわかりません。私はこのようなことが起こることを望みます:

this.body.write("{data: "});
this.body.write(stream);
this.body.write("}");

しかし、Koa には body.write がないことはわかっていますし、ストリームも適切に使用していないと確信しています。誰かが私を正しい方向に向けることができますか?

4

1 に答える 1

6

koa-writeが役立つ場合があります。

しかし、あなたはそれを必要としないかもしれません。Koa では次のことができます。

this.body = stream;

あなたの場合、マングースストリームは出力したいものではないため、変換ストリームを作成できます。

于 2015-06-11T14:09:13.110 に答える