Javascript StreamSaver.js-下载时出错(网络失败)
我使用StreamSaver和NodeJS将10000000条记录保存到一个.Json格式的文件中。运行应用程序并下载大约多条记录(200000或300000或…)后,下载取消并中止file.json,并在浏览器的downloader上显示错误“网络失败”。Javascript StreamSaver.js-下载时出错(网络失败),javascript,json,node.js,socket.io,Javascript,Json,Node.js,Socket.io,我使用StreamSaver和NodeJS将10000000条记录保存到一个.Json格式的文件中。运行应用程序并下载大约多条记录(200000或300000或…)后,下载取消并中止file.json,并在浏览器的downloader上显示错误“网络失败”。 为什么显示此错误并取消下载? 注意:我在控制台中没有任何错误,我下载了大约500MB或更多…所以范围/内存没有问题 Server.js client.js @guest271314 no.…发生在不同的时间…编辑的问题。@guest2713
为什么显示此错误并取消下载?
注意:我在控制台中没有任何错误,我下载了大约500MB或更多…所以范围/内存没有问题 Server.js client.js
@guest271314 no.…发生在不同的时间…编辑的问题。@guest271314我下载了大约500MB。189MB不是问题。@guest271314我在控制台中没有任何错误。@guest271314在我的问题中添加了pic。请再次查看此示例…@guest271314 no…,发生在不同的时间…编辑的问题。@guest271314我下载了大约500MB。189MB不是问题。@guest271314我在控制台中没有任何错误。@guest271314在我的问题中添加了pic。请再看一下这是样品。。。
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");
// ... error checks
request.on('recordset', function (recordset) {
// Emitted once for each recordset in a query
});
request.on('row', function (record) {
// Emitted for each row in a recordset
socket.emit('recieve_records', record); //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
});
});
});
var fileStream = streamSaver.createWriteStream('filename.json');
writer = fileStream.getWriter();
encoder = new TextEncoder();
var counter = 0;
socket.on('recieve_records', function (data) {
var uint8array = encoder.encode(data + "\n"); // data='every things'
writer.write(uint8array);
counter++;
if (counter > 100000) {
console.log('100.000 messages downloaded');
counter = 0;
}
});