Как загрузить несколько изображений в mongoDB? - PullRequest
0 голосов
/ 19 января 2019

Я успешно запрограммировал загрузить изображение в MongoDB. Но теперь я хочу загрузить несколько изображений в базу данных. я использовал gridFS и multer. Может кто-нибудь помочь мне решить эту проблему

// Create Storage engine
var storage = new GridFsStorage({
url: Mongo,
file: (req, file) => {
return new Promise((resolve, reject) => {
  crypto.randomBytes(16, (err, buf) => {
    if (err) {
      return reject(err);
    }
    const filename = buf.toString('hex') + path.extname(file.originalname);
    const fileInfo = {
      filename: filename,
      bucketName: 'uploads',
      metadata: {'username': req.body.username}
  };
    resolve(fileInfo);
  });
  });
  }
  });
  const upload = multer({ storage });

  /*--------------------------------------------------------*/


 app.get('/',(req,res)=>{
 gfs.files.find().toArray((err,files)=>{
// Check if Files
if(!files || files.length ===0)
{
  res.render('index',{files:false});
} else{
  files.map(file=>{
    if(file.contentType === 'image/jpeg' || file.contentType === 
 'image/png')
    {
      file.isImage = true;
    } else {
      file.isImage = false;
    }
  });
  res.render('index',{files:files});

}

});
});

/*----------------------------------------------------*/


// Display Image
 app.get('/image/:filename', (req,res)=>{
 gfs.files.findOne({filename: req.params.filename}, (req,file) =>{
  // Check if File
  if(!file || file.length ===0)
 {
  return res.status(404).json({
    err: 'No files exist'
  });
  }
  // Check if image
  if(file.contentType === 'image/jpeg' || file.contentType === 'image/png')
  {
  // Read output tp browser
  var readstream = gfs.createReadStream(file.filename);
  readstream.pipe(res);
 }
 else
 {
  res.status(404).json({
    err: 'Not an image'
  });
  }
 });
});

Я прикрепил раздел кода, связанный с загрузкой изображений. пожалуйста, проверьте этот код и дайте хороший трюк для загрузки нескольких изображений в mongoDB

...