2012-06-15 4 views
1

Я пытаюсь создать программу node.js, которая принимает файл через http POST и записывает его в mongodb. Чтобы сохранить использование памяти, я использую req.on ('data') для получения данных в кусках.Потоковая передача файла в mongodb с node.js

Проблема в том, что независимо от того, как я подхожу к проблеме, я не могу обойти тот факт, что события данных увольняются, прежде чем монго написал документ.

Это то, что я пытался сделать:

  1. Сообщение соединение получено, создать документ в Монго хранящее _id из Монго.
  2. Затем каждое событие данных обновляло документ (используя _id)
  3. Когда получено окончательное событие, я обновил документ, установив некоторый полный флаг.

Однако, прежде чем mongo вернется на этапе 1, начнется запуск данных.

Есть ли правильный способ сделать это? Я бы предпочел не прибегать к записи в файл.

Thanks, Kev.

ответ

0

Вы всегда можете указать pause the request и разобрать его, как только Mongo завершает работу магазина.

+0

Привет, спасибо за совет. Я только что пробовал это, но, к сожалению, это не имеет никакого значения, события данных все равно увольняются. Я не знаю, является ли это ошибкой или чем-то я ошибаюсь. Может быть, пауза останавливает поток, но первые куски данных отправляются с заголовком? – YorkshireKev

+0

Похоже, что пауза была исправлена ​​/ изменена в версии 7 узла, поэтому, надеюсь, она будет в следующем стабильном выпуске. Похоже, я не понимаю, что он не будет обращен к 6.x. – YorkshireKev

Смежные вопросы