2015-10-09 4 views
2

Мне нужно скачать резюме из GridFS, ниже приведен код, написанный для этого, но это, похоже, не дает мне физический файл для загрузки, это используется для чтения содержимое. Как загрузить файл?Как загрузить файл, сохраненный в gridFS с помощью nodeJS

exports.getFileById = function(req, res){ 
var conn = mongoose.connection; 
var gfs = Grid(conn.db, mongoose.mongo); 
var id = req.params.ID; 
gfs.exist({_id: id,root: 'resume'}, function (err, found) { 
    if (err) return handleError(err); 
    if (!found) 
     return res.send('Error on the database looking for the file.'); 
    gfs.createReadStream({_id: id,root: 'resume'}).pipe(res); 
}); 
}; 

ответ

4

Надеюсь, это поможет!

exports.getFileById = function(req, res){ 
var role = req.session.user.role; 
var conn = mongoose.connection; 
var gfs = Grid(conn.db, mongoose.mongo); 
gfs.findOne({ _id: req.params.ID, root: 'resume' }, function (err, file) { 
    if (err) { 
     return res.status(400).send(err); 
    } 
    else if (!file) { 
     return res.status(404).send('Error on the database looking for the file.'); 
    } 

    res.set('Content-Type', file.contentType); 
    res.set('Content-Disposition', 'attachment; filename="' + file.filename + '"'); 

    var readstream = gfs.createReadStream({ 
     _id: req.params.ID, 
     root: 'resume' 
    }); 

    readstream.on("error", function(err) { 
     res.end(); 
    }); 
    readstream.pipe(res); 
    }); 
}; 
Смежные вопросы