2012-06-15 152 views
1

我想創建一個node.js程序,它通過http POST接受一個文件並將它寫入到mongodb中。爲了減少內存使用量,我使用req.on('data')以塊的形式接收數據。用node.js流文件到mongodb

問題是,無論我如何處理這個問題,我都無法理解數據事件在mongo寫入文檔之前被解僱的事實。

這是我一直試圖做的事:

  1. 後接收到的連接,創造蒙戈文件存儲從蒙戈的_id。
  2. 然後每個數據事件將更新文檔(使用_id)
  3. 當收到結束事件時,我會更新文檔設置一些完整的標誌。

但是,在mongo在步驟1中返回之前,數據事件開始被觸發。

有沒有正確的方法來做到這一點?我寧願不必訴諸寫文件。

謝謝, Kev。

回答

0

您可以隨時登錄pause the request,並在Mongo完成商店後取消暫停。

+0

嗨,謝謝你的建議。我剛剛嘗試過,但不幸的是,它似乎沒有任何區別,數據事件仍然被解僱。我不知道這是一個錯誤還是我做錯了什麼。也許暫停停止流,但第一個數據塊與頭一起發送? – YorkshireKev

+0

看起來暫停已經在節點版本7中修正/修改,所以希望它會在下一個穩定版本中發佈。谷歌搜索我覺得它不會被支持6.x。 – YorkshireKev