Socket.io 写入文件到用户磁盘
Socket.io write file to user disk
我有一个带有按钮的 Node.js 网络应用程序。按下此按钮时,它会收集数据并将数据发送到 socket.io 函数。这是客户端代码:
$("body").on('click', ".download", function() {
var data = [1,2,3,4,5];
socket.emit('download_data', data);
}
在服务器端我有一个获取数据的socket.io函数:
socket.on('download_data', function(data){
//create csv and download
});
我想要套接字函数用生成的数据创建一个 CSV 文件并将该文件写入用户磁盘。这可能吗?
在服务器端,生成CSV文件内容:
csv = '';
data.forEach(row => { // Assuming an array of arrays.
csv += row.join(';') + '\n';
});
Return给客户端的内容:
socket.emit('csv_content', csv);
在客户端,要求用户下载或打开。我在这里使用文件保护程序包。
import { saveAs } from 'file-saver';
const blob = new Blob([content], { type: "text/csv;charset=utf-8" });
saveAs(blob, "data.csv");
不确定为什么为此使用 socket.io,因为您可以对 HTTP POST 操作执行相同的操作。
我有一个带有按钮的 Node.js 网络应用程序。按下此按钮时,它会收集数据并将数据发送到 socket.io 函数。这是客户端代码:
$("body").on('click', ".download", function() {
var data = [1,2,3,4,5];
socket.emit('download_data', data);
}
在服务器端我有一个获取数据的socket.io函数:
socket.on('download_data', function(data){
//create csv and download
});
我想要套接字函数用生成的数据创建一个 CSV 文件并将该文件写入用户磁盘。这可能吗?
在服务器端,生成CSV文件内容:
csv = '';
data.forEach(row => { // Assuming an array of arrays.
csv += row.join(';') + '\n';
});
Return给客户端的内容:
socket.emit('csv_content', csv);
在客户端,要求用户下载或打开。我在这里使用文件保护程序包。
import { saveAs } from 'file-saver';
const blob = new Blob([content], { type: "text/csv;charset=utf-8" });
saveAs(blob, "data.csv");
不确定为什么为此使用 socket.io,因为您可以对 HTTP POST 操作执行相同的操作。