我使用./upload/
multer
的Nodejs服务器
app.use(multer({ dest : './uploads/',
rename: function(fieldname, filename){
return filename + '^' + Date.now();
},
onFileUploadStart: function(file){
console.log(file.originalname + ' is starting...');
},
onFileUploadComplete: function(file){
console.log(file.fieldname + ' uploaded to ' + file.path);
done=true;
}
}));
所以现在,我必须将此图像文件存储到Mongodb。
我一直在寻找适合我的设置的例子,但我不能。
答案 0 :(得分:0)
请记住,MongoDB中的每个文档都必须小于16MB,如果它们大于您使用GridFS的文档,那么您只需将图像保存为二进制数据。这在gist上有所描述。您使用的示例的要点是:
// Your schema should be set to something like this
var schema = new Schema({
img: { data: Buffer }
});
// a is a new model of the schema
a.img.data = fs.readFileSync(imgPath);
a.save(function (err, a) {
如果您不想处理文件系统上的文件,请将multer的inMemory
设置设置为true
。然后使用buffer
对象中的multer
。
app.use(function() {
var img = multer({ inMemory: true})
a.img.data = img.buffer;
a.save(cb);
});