在Koa中用Mongoose写入stream式响应
我试图从Mongo数据库发送一个大的结果集到一个Koa应用程序的用户(使用Mongoose)。
我本来有这样的东西:
var res = yield Model.find().limit(500).exec(); this.body = {data: res};
然而,正在发送的结果集的大小导致应用程序超时,因此我想stream数据库中的响应。
使用Mongoose,您可以通过执行以下操作将查询结果转换为stream:
var stream = Model.find().limit(300).stream();
但是,我不确定如何将这个stream写入响应,同时保留所需的格式。 我想要这样的事情发生:
this.body.write("{data: "}); this.body.write(stream); this.body.write("}");
但是我知道在Koa中没有body.write,我确定我也没有正确使用stream。 有人能指出我正确的方向吗?
koa写可能会有所帮助。
但你可能不需要这个。 Koa允许你做:
this.body = stream;
在你的情况下,你可以创build一个转换stream,因为mongoosestream不是你想要输出的。