Node Js下载操作

时间:2015-07-21 01:49:34

标签: node.js

我是nodejs的新手,对于文件下载方案有疑问。

我知道节点使用单线程事件循环响应服务。当请求下载时,请求被推送到异步回调队列,直到结果(文件数据)准备好发送给请求用户。

  1. 当结果写回给用户时,这是通过事件循环周期完成的,还是在事件循环之外以不同方式完成?

  2. 如果大文件没有采取预防措施,这种操作是否会阻止服务器?如果这可能导致问题,我们如何处理这种情况?

1 个答案:

答案 0 :(得分:0)

Node中此问题的常规方法是streams。流类似于可以发送和/或接收数据的UNIX管道。使用fs.createReadStream将创建从文件中读取的流。在该流上调用pipe可以从该文件中获取所有数据并将其推送到等待的数据接收器;在您的示例中,它将是服务器请求。然后,您无需担心,读取器流将读取数据并引发流将尽职尽责地传输到写入器流的事件。

这里有一个stream tutorial,可以更详细地介绍它。