Ошибка при попытке скачать файл с Gridfs-stream - PullRequest
0 голосов
/ 25 января 2019

Я закодировал функцию на моем сервере node.js, которая будет отправлять файл из MongoDB с помощью модуля gridfs-stream на мой клиент (веб-браузер).

Я получаю следующую ошибку:

MongoError: file with id 5c4b74736202ee1ec8e98c5c not opened for writing

Вначале я думал, что _id, который я передал на сервер, был прочитан неправильно, но это не так.Кроме того, сервер может проверить на MongoDB, что файл с соответствующим _id существует.

app.get('/tlcFichier', (req, res) => {
  // Check file exist on 
  var filename = req.query.filename;
  var id = req.query._id;
  console.log(id);
  console.log(filename);

  const mongoURI = 'mongodb://10.182.41.184:27017/pokemon'

  //Connect to the database
  var conn = mongoose.createConnection(mongoURI);
  conn.once("open", function (callback) {
    console.log("Connection Succeeded");
    //Init stream
    gfs = Grid(conn.db,mongo);
    gfs.collection('fs.files');


    gfs.exist({ _id: id }, function (err, found) {
      if (err) return handleError(err);
      found ? console.log('File exists') : console.log('File does not exist');
      if (found) {
        res.setHeader('Content-disposition', 'attachment; filename=' + filename);
        var readstream = gfs.createReadStream({ _id: id });
        readstream.pipe(res);      
      }
    });
  });

});

Файл должен быть загружен на моем клиенте, но это не так.

...