Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/34.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript-下载流数据_Javascript_Node.js_Stream - Fatal编程技术网

Javascript-下载流数据

Javascript-下载流数据,javascript,node.js,stream,Javascript,Node.js,Stream,我通过流方法从服务器(NodeJS)获取数据(2GB),现在我想在浏览器(客户端)上下载这些数据,但接收到的数据正在增加,并且使用了大量内存(RAM),但我不想这样。换句话说,我想把这些数据保存在我的浏览器(RAM)的硬盘上 app.js client.js 你可以用BlobAPI@siam请获取样本,您可以使用BlobAPI@siam请拿样品 var http = require('http'); var express = require('express'); var app = expr

我通过流方法从服务器(NodeJS)获取数据(2GB),现在我想在浏览器(客户端)上下载这些数据,但接收到的数据正在增加,并且使用了大量内存(RAM),但我不想这样。换句话说,我想把这些数据保存在我的浏览器(RAM)的硬盘上

app.js client.js
你可以用BlobAPI@siam请获取样本,您可以使用BlobAPI@siam请拿样品
var http = require('http');
var express = require('express');
var app = express();
var server = http.Server(app);
var io = require('socket.io')(server);

io.on('connection', function (socket) {
    console.log('Connection is ready!')
    socket.on('get_records', function (data) {
    var connection = new sql.Connection(config, function (err) {
        if (err) {
            console.log(err.message);
        }

        var request = new sql.Request(connection);
        request.stream = true;

        request.query("Select * from my_table"); //2GB data
        // ... error checks
        request.on('recordset', function (recordset) {
            // Emitted once for each recordset in a query
        });

        request.on('row', function (message) {
            // Emitted for each row in a recordset
            socket.emit('recieve_records', message); //send record by record to client
        });

        request.on('error', function (err) {
            console.log(err.message);
        });

        request.on('done', function (returnValue) {
            // Always emitted as the last one
        });
    });
});
socket.on('recieve_records', function (data) {
    email.push(data);
});