Не бях доволен от отговора с най-висока оценка тук и затова предоставям нов:накрая използвах модула на възел „gridfs-stream“ (страхотна документация там!), който може да бъде инсталиран чрез npm. С него и в комбинация с мангуста, може да изглежда така:
var fs = require('fs');
var mongoose = require("mongoose");
var Grid = require('gridfs-stream');
var GridFS = Grid(mongoose.connection.db, mongoose.mongo);
function putFile(path, name, callback) {
var writestream = GridFS.createWriteStream({
filename: name
});
writestream.on('close', function (file) {
callback(null, file);
});
fs.createReadStream(path).pipe(writestream);
}
Имайте предвид, че пътят е пътят на файла в локалната система.
Що се отнася до функцията ми за четене на файла, за моя случай просто трябва да прехвърля файла към браузъра (използвайки експрес):
try {
var readstream = GridFS.createReadStream({_id: id});
readstream.pipe(res);
} catch (err) {
log.error(err);
return next(errors.create(404, "File not found."));
}