Ik was niet tevreden met het best beoordeelde antwoord hier en daarom geef ik een nieuwe:ik heb uiteindelijk de node-module 'gridfs-stream' gebruikt (geweldige documentatie daar!) Die kan worden geïnstalleerd via npm. Hiermee en in combinatie met mangoest, zou het er zo uit kunnen zien:
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);
}
Merk op dat pad het pad is van het bestand op het lokale systeem.
Wat betreft mijn leesfunctie van het bestand, voor mijn geval hoef ik het bestand alleen maar naar de browser te streamen (met behulp van express):
try {
var readstream = GridFS.createReadStream({_id: id});
readstream.pipe(res);
} catch (err) {
log.error(err);
return next(errors.create(404, "File not found."));
}