Я закодировал функцию на моем сервере 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);
}
});
});
});
Файл должен быть загружен на моем клиенте, но это не так.