如何在MongoDB中保存<16mb的图像文件?

时间:2019-07-19 11:04:58

标签: node.js mongodb mongoose

我需要使用Node.js将用户上传的图像保存在db中。 在Mongo文档中,就是说要使用gridFS,以防您要保存的文件大于16mb。

我还找到了一种将该文件另存为binData的方法,但不太了解该选项的工作原理。

任何建议将不胜感激。

2 个答案:

答案 0 :(得分:1)

docs非常清楚:

  

要将路径声明为Buffer,可以使用Buffer全局构造函数或字符串'Buffer'。

const schema1 = new Schema({ binData: Buffer }); // binData will be cast to a Buffer
const schema2 = new Schema({ binData: 'Buffer' }); // Equivalent

const Data = mongoose.model('Data', schema2);

请注意16mb的限制适用于整个文档,而不是仅用于图像。

答案 1 :(得分:0)

实际上您可以尝试这种替代方法

如果文件实际上小于16 mb,请尝试使用此Converter将jpeg / png格式的图像更改为保存为mongodb的格式,您可以将其视为gridfs的简便替代方法,

主要目标是将图像转换为另一种格式(Base-64),然后将其存储在mongoDB中

我已经在此github存储库中提供了完整的指南,请检查它们,

please check this github repo for more details..