Perl の Catalyst フレームワークを使用すると、開いている接続を介して段階的にフラッシュされた応答を送信できます。write_fh()
たとえば、 Catalyst::Response で使用できます。Node.js を使い始めましたが、同等の方法が見つかりません。
200メガ程度の大きなCSVファイルを送信したい場合、CSVファイル全体をメモリにバッファリングせずに送信する方法はありますか? 確かに、一定時間内にデータを送信しないとクライアントはタイムアウトするため、次の場合は約束が必要ですが、とにかくこれを行うことはありますか?
res.send(text)
コールバックで実行しようとすると、
Express
500 Error: This socket has been ended by the other party
socket.close()
そして、Express.js が明示的または同類の何かをサポートしているようには見えません。
ここに例があります、
exports.foo = function (res) {
var query = client.query("SELECT * FROM naics.codes");
query.on('row', function(row) {
//console.log(row);
res.write("GOT A ROW");
});
query.on('end', function() {
res.end();
client.end();
});
};
client.end()
完了を意味する呼び出しまで、行ごとに「GOT A ROW」を送信することを期待します。