Node.js上传与发布大数据 - 哪个是更好的选择



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

在将该文件存储在数据库中之前,需要对此文件进行现场验证和预处理(转换为 JSON)。

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

现在我需要将此 JSON 数据作为 POST 发送。如何在不阻塞节点的情况下通过 AJAX 发布它.js?同样作为次要问题,如何将此数据作为块保存在服务器上的文件,以便服务器不会加载 50 MB 数据......

关于解决此问题的最佳方法的任何建议?

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

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

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

最新更新