如何在Node JS中存储和处理大数据字符串(大约2mb)

时间:2019-03-18 06:40:43

标签: node.js mongodb mongoose

我在angular中有一个前端,而API在nodejs中。前端将加密的文件发送给我,现在我将其存储在MongoDB中。但是,当我将此文件发送到前端时,通话有时会中断。因此,请建议我如何解决此通话中断问题。

1 个答案:

答案 0 :(得分:0)

您的问题不是特别清楚。据我了解,您想从Node后端向客户端发送一个大文件。如果正确,请继续阅读。

我遇到了类似的问题,长时间运行的API调用花了几分钟来编译数据并将单个大响应发送回客户端。我遇到的这个问题超时,无法延长。

借助Node,您可以使用“流”来流化客户端可用的数据。对于我来说,这种方法非常有效,因为服务器正在流传输数据,客户端正在读取数据。解决了超时问题,因为服务器和客户端之间经常发生“抖动”。

使用Streams确实需要一些时间来理解,我花了一些时间阅读各种文章和示例。就是说,一旦我了解了,就可以轻松实现。

freeCodeCamp网站上Node Streams上的这篇文章很棒。它包含一个非常有用的示例,其中创建了一个非常大的文本文件,然后使用流将其“管道传输”到客户端。它显示了如何读取“块”中的文本文件,如何转换这些支票并将其发送给客户端。本文不解释的是如何在客户端中读取此数据...

对于客户端,此方法与典型的fetch()。then()方法不同。我找到另一篇文章,展示了一个从后端读取此类流的有效示例。请参阅Mozilla网站上的Using Readable Streams。特别是,看一下使用'pump'函数的大型代码示例。这正是我用来从后端流中读取数据的方式。

对不起,我无法为您的问题提供具体答案,但我希望这些链接能帮助您入门。