Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.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 node.js上传与发布大数据-哪个选项更好?_Javascript_Jquery_Node.js - Fatal编程技术网

Javascript node.js上传与发布大数据-哪个选项更好?

Javascript node.js上传与发布大数据-哪个选项更好?,javascript,jquery,node.js,Javascript,Jquery,Node.js,我正在建立一个node.js网站,用户界面将允许用户上传一个包含1000行的大型csv文件…(至少>10k行和50MB大小) 在将该文件存储到数据库之前,需要对其进行字段验证和预处理(转换为JSON) 如果我使用html文件上传机制并在服务器上进行“预处理”,这是一个for循环,node.js事件循环将被阻止。因此,我尝试使用HTML5文件阅读器在客户端浏览器中读取文件,并将其预处理为JSON 现在我需要以POST的形式发送这个JSON数据。如何在不阻塞node.js的情况下通过AJAX发布它?

我正在建立一个node.js网站,用户界面将允许用户上传一个包含1000行的大型csv文件…(至少>10k行和50MB大小)

在将该文件存储到数据库之前,需要对其进行字段验证和预处理(转换为JSON)

如果我使用html文件上传机制并在服务器上进行“预处理”,这是一个for循环,node.js事件循环将被阻止。因此,我尝试使用HTML5文件阅读器在客户端浏览器中读取文件,并将其预处理为JSON

现在我需要以POST的形式发送这个JSON数据。如何在不阻塞node.js的情况下通过AJAX发布它?另外,作为第二个问题,我如何在服务器上将这些数据作为块保存为文件,这样服务器就不会加载50 mb的数据


关于解决这个问题的最佳方法有什么建议吗?

我有一个类似的用例。我首先将文件分为若干块来解决这个问题。(定义n行的块大小)并将其添加到简单队列对象

然后使用递归jQuery AJAX POST提交队列中的每个块,直到队列为空。这类似于使用BLOB api来分块文件,只是我们关心CSV文件中的行,而不是分块大小


我在生产过程中上传了非常大的文件,工作速度非常快,您可以轻松控制取消、暂停、继续、进度等。

如果您将其通过节点传输到数据库服务器,您甚至可以动态处理它。这不应该阻止事件循环。@Bergi-你能告诉我怎么做吗?试试下面的任何一个。当然,您也会找到一种方法,通过某种方式将流一步一步地序列化为JSON。感谢您的解决方案。我开始研究这个逻辑。将发布更新。