Отправить несколько файлов из Mongodb для просмотра с gridFs
Код может отправить один файл изображения для просмотра, но когда я хочу отправить много файлов, он выдает ошибку:
Ошибка: невозможно установить заголовки после их отправки.
app.get('/api/upload', function (req, res) {
var arr = [];
var i =0;
gfs.files.find({}, {}).forEach(function (files) {
if (files.length === 0) {
return res.status(400).send({
message: 'File not found'
});
}
arr.push(files);
res.writeHead(200, {'Content-Type': arr[i].contentType});
var readstream = gfs.createReadStream({
filename: arr[i].filename
});
arr.splice(i, 1 );
readstream.on('data', function (data) {
res.write(data);
});
readstream.on('end', function () {
res.end();
});
readstream.on('error', function (err) {
console.log('An error occurred!', err);
throw err;
});
});
});
Так; Как сделать так, чтобы код отправлял все изображения для просмотра? Один за другим или как один объект?
Ps. Причиной сращивания является то, что forEach выдвигает первый элемент, первый и второй, первый, второй и третий и т. Д.:
Value:
[ { _id: 5927bd80b4f177148865960d,
filename: '9m79o7R.jpg',
contentType: 'image/jpeg',
length: 796432,
chunkSize: 261120,
uploadDate: 2017-05-26T05:30:44.947Z,
aliases: null,
metadata: { objectId: '9m79o7R.jpg' },
md5: 'e58694132f00a7b5d2f623cdd45d36f6' } ]
Value:
[ { _id: 5927bd80b4f177148865960d,
filename: '9m79o7R.jpg',
contentType: 'image/jpeg',
length: 796432,
chunkSize: 261120,
uploadDate: 2017-05-26T05:30:44.947Z,
aliases: null,
metadata: { objectId: '9m79o7R.jpg' },
md5: 'e58694132f00a7b5d2f623cdd45d36f6' },
{ _id: 5927bdadb4f1771488659614,
filename: 'blue_sky-t2.jpg',
contentType: 'image/jpeg',
length: 43594,
chunkSize: 261120,
uploadDate: 2017-05-26T05:31:26.526Z,
aliases: null,
metadata: { objectId: 'blue_sky-t2.jpg' },
md5: 'feda400c51b0c37f7c3d2ba439f1c776' } ]