Jag var inte nöjd med det högst betygsatta svaret här och därför tillhandahåller jag ett nytt:Det slutade med att jag använde nodmodulen 'gridfs-stream' (bra dokumentation där!) som kan installeras via npm.Med den och i kombination med mangust kan det se ut så här:
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);
}
Observera att sökvägen är sökvägen till filen på det lokala systemet.
När det gäller min läsfunktion för filen, för mitt fall behöver jag bara strömma filen till webbläsaren (med hjälp av express):
try {
var readstream = GridFS.createReadStream({_id: id});
readstream.pipe(res);
} catch (err) {
log.error(err);
return next(errors.create(404, "File not found."));
}