Puedo cargar y mostrar una sola imagen a través de gridfs. Sin embargo, no puedo transmitir varias imágenes al mismo tiempo. A continuación se muestra un fragmento de lo que he hecho hasta ahora para la recuperación de imágenes.
gfs = new mongoose.mongo.GridFSBucket(conn,{ bucketName: "uploads"});Los datos se almacenan en Mondo DB en fragmentos y recopilación de archivos.
router.get('/image/:filename', (req, res) => { gfs.find({ filename: req.params.filename }).toArray((err, files) => { // Check if file if (!files[0] || files.length === 0) { return res.status(404).json({ err: 'No file exists' }); } // Check if image if (files[0].contentType === 'image/jpeg' || files[0].contentType === 'image/jpg') { // Read output to browser gfs.openDownloadStreamByName(req.params.filename).pipe(res); // readstream.pipe(res); } else { res.status(404).json({ err: 'Not an image' }); } }); }); router.get('/browse', (req, res) => { gfs.find().toArray((err, files) => { // Check if files if (!files || files.length === 0) { return res.status(404).json({ err: 'No files exist' }); } // Files exist... // return res.json(files); // Check if image const arr = []; for (var i = 0; i < files.length; i++) { if (files[i].contentType === 'image/jpeg' || files[i].contentType === 'image/jpg') { arr.push(files[i].filename); console.log(files[i].filename); // Read output to browser gfs.openDownloadStreamByName(arr[i]).pipe(res); } else { res.status(404).json({ err: 'Not an image' }); } } }); });