Буферизация нескольких изображений с последующей отправкой через ответ + NodeJS, MongoDB & GridFS - PullRequest
0 голосов
/ 25 февраля 2020

Система имеет отчеты, сгенерированные в виде изображений и хранящиеся в GridFS MongoDB. Когда клиентские запросы отправляются обратно с использованием этого простого фрагмента кода:

var gfs = new Gridfs(db, mongoDriver);
var readstream = gfs.createReadStream({
  _id: imageId
});
readstream.pipe(res);

Эти отчеты могут быть сгруппированы, и в настоящее время клиент может запросить отчет на уровне группы. В этом случае, поскольку в системе уже есть отдельные отчеты, я попытался объединить их, как показано ниже:

imageIds.forEach(imageId => {
  console.log(imageId);

  var readstream = gfs.createReadStream({
    _id: imageId
  });

  console.log(readstream);

  readstream.pipe(res);
});

Вывод: только первый отчет отправляется обратно через ответ. Просто интересно, есть ли способ, которым я могу объединить все потоки чтения в массив и затем направить его к ответу?

В основном я хочу, чтобы все изображения были буферизованы и затем отправлены через объект ответа.

Любая помощь будет признателен, спасибо заранее.

...