インメモリ DB を使用して応答をストリーミングするにはどうすればよいですか?
Loki JS をインメモリ DB として使用しています。テーブルの内容全体を返さなければならない特定のリソースがあり (ページ分割できません)、そのテーブルは 500,000 アイテム程度 (約 300 MB) まで大きくなる可能性があります。
別のケースでは、fs.createReadStream を使用してファイルを取得し、それをユーザーにストリーム配信しました。
fs.createReadStream('zips.json')
.on('data', function() {
res.write(...)
})
.on('end', function() {
res.end();
})
これは大きなファイルに対してうまく機能しましたが、インメモリ DB を使用して同等のことを行うにはどうすればよいでしょうか?
const items = lokiDb.addCollection('items');
items.insert('a bunch of items ...');
// I would now like to stream items via res.write
res.write(items)
現在、res.write(items)
ノードは応答全体を一度に返そうとしているため、メモリの問題が発生します。