【问题标题】:Streaming a file into mongodb with node.js使用 node.js 将文件流式传输到 mongodb
【发布时间】:2012-06-18 20:43:57
【问题描述】:

我正在尝试创建一个 node.js 程序,该程序通过 http POST 接受文件并将其写入 mongodb。为了降低内存使用率,我使用 req.on('data') 以块的形式接收数据。

问题在于,无论我如何处理该问题,我都无法绕过数据事件在 mongo 编写文档之前被触发的事实。

这是我尝试做的:

  1. 收到连接后,在 mongo 中创建文档,存储来自 mongo 的 _id。
  2. 然后每个数据事件都会更新文档(使用_id)
  3. 收到结束事件后,我会更新文档,设置一些完整标志。

但是,在第 1 步中 mongo 返回之前,数据事件开始被触发。

有没有正确的方法来做到这一点?我宁愿不必诉诸于写入文件。

谢谢, 凯夫。

【问题讨论】:

    标签: node.js mongodb


    【解决方案1】:

    您可以随时pause the request 并在 Mongo 完成商店后取消暂停。

    【讨论】:

    • 您好,感谢您的建议。我刚刚尝试过,但不幸的是它似乎没有任何区别,数据事件仍然被触发。我不知道这是一个错误还是我做错了什么。也许暂停会停止流,但第一个数据块与标头一起发送?
    • 看起来暂停已经在节点版本 7 中得到修复/修改,所以希望它会在下一个稳定版本中出现。谷歌搜索我得到的印象是它不会被向后移植到 6.x。
    猜你喜欢
    • 1970-01-01
    • 2014-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 2016-09-21
    • 2011-12-21
    • 1970-01-01
    相关资源
    最近更新 更多