Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Node.js 如何保存<;MongoDB中的16mb图像文件?_Node.js_Mongodb_Mongoose - Fatal编程技术网

Node.js 如何保存<;MongoDB中的16mb图像文件?

Node.js 如何保存<;MongoDB中的16mb图像文件?,node.js,mongodb,mongoose,Node.js,Mongodb,Mongoose,我需要用Node.js将用户上传的图像保存在db中。 在Mongo文档中,如果试图保存的文件大于16mb,则使用gridFS 我还找到了将该文件另存为binData的方法,但不太了解该选项的工作原理 如有任何建议,我们将不胜感激。我们非常清楚这一点: 要将路径声明为缓冲区,可以使用缓冲区全局构造函数或字符串“Buffer” const schema1 = new Schema({ binData: Buffer }); // binData will be cast to a Buffer co

我需要用Node.js将用户上传的图像保存在db中。 在Mongo文档中,如果试图保存的文件大于16mb,则使用gridFS

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

如有任何建议,我们将不胜感激。

我们非常清楚这一点:

要将路径声明为缓冲区,可以使用缓冲区全局构造函数或字符串“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限制适用于整个文档,而不仅仅是图像

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

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

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

我已经在github回购中发布了完整的指南,请查看它们