问题标签 [multer-gridfs-storage]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
52 浏览

javascript - How could I display a non-image file stored in MongoDB(using GridFS) on a web page?

I am working on a site that allows a user to upload a document (not an image), which is then stored in MongoDB with GridFS. My question is... is it possible to then embed/display that document for viewing on the site? Everytime I use the createReadStream method, it just downloads the document. I would like it to show the actual document or the document's contents on the webpage, possibly in an iframe. Maybe there is a way to make a url for the document, or access the file another way? Thanks in advance.

0 投票
0 回答
150 浏览

javascript - 在nodejs中使用gridfs将本地文件上传到mongodb

我正在尝试将文件作为表单中的输入,然后将其存储在临时文件夹中,然后对文件运行一些加密算法并将加密文件保存在临时文件夹本身中。之后,我想将该 encryptrd 文件从 temp 文件夹上传到 gridfs。加密文件存储在 tmp 文件夹中,但未上传到 mongoDB。请帮我弄清楚为什么?下面是我的代码的一部分。

0 投票
2 回答
207 浏览

node.js - 为什么我无法使用以下 NodeJS 代码上传文件?

我正在尝试在 NodeJS 中设计一个简单的应用程序,该应用程序通过 HTML 表单上传 CSV 文件。仔细阅读了YouTube上关于如何使用 NodeJS 上传文件的本教程后,我不明白为什么我的代码无法上传任何文件。在 youtube 教程中,我没有超过 6:53 分钟。

在下面找到我的简单代码:

...我的 HTML 表单代码如下所示: 在此处输入图像描述

http://localhost:3600/正确显示

在此处输入图像描述

我可以浏览到我选择的任何文件,然后单击将我定向到的提交按钮:

在此处输入图像描述

根据YouTube在 6:53 分钟,uploads文件夹现在应该包含上传的文件,但是,该文件夹是空的!

此外,终端显示

在此处输入图像描述

...表明console.log(req.file);实际上没有读入任何文件。

我也尝试使用邮递员,这是结果的屏幕截图:

在此处输入图像描述 我尝试重新观看视频并仔细按照说明进行操作,但仍然无法解决问题。

请帮助我了解上传无法正常工作的原因以及如何解决此问题。期待您的帮助。

0 投票
1 回答
53 浏览

mongodb - busboy-bodyparser 更改了我的请求,以便 GridFsStorage 不会在 mongodb 中注册请求数据

我是一名前端开发人员,试图拓宽我的视野,并制作将成为 MERN 应用程序的东西。我正在努力将图像上传到 mongodb。

首先,我使用了 express bodyparser:

app.use(express.urlencoded({ extended: true }));app.use(express.json());

当像这样使用时,我设法上传了文件,上传的文件出现在 MongoDB Compass 中。

我发现这不支持 multipart/form-data,所以我将 bodyparser 更改为 busboy -bodyparser,以便我可以访问 form-data 和正在上传的文件。所以我将bodyparser更改为:

app.use(busboyBodyParser());

现在它不会将请求数据上传到 mongodb。

我的上传控件如下所示:

我将 req.file 设置为 req.files.file 的原因是因为 busboy-bodyparser 从 req.files.file 而不是 req.file 发送文件,我认为这种更改会使请求正常运行,它没有。

我的上传中间件如下所示:

我相信这是记录(node:15124) 的代码 DeprecationWarning: Listening to the events on the Db class has been deprecated 并将在下一个主要版本中删除。(node --trace-deprecation ...用于显示警告的创建位置) 这是我不确定如何解决的另一个问题,但这是另一天的另一个问题。

我的最终目标是能够将文件发送到 mongodb,并附上元数据(标题和方向)。

使用此代码,我可以从上传控件中获取“文件已上传”消息,但在 mongoDB 罗盘中没有上传文件/块。上传在使用 express-bodyparser 的文件上传(没有元数据)上效果很好,所以当我将其更改为 busboy-bodyparser 时,我得到了预期的文件和元数据,但它没有加载到数据库中,这导致我相信新的 bodyparser 会更改请求,以便 GridFsStorage 不再识别它并且不会将数据放入数据库中。但坦率地说,我只是在这里推测,而且我对后端的了解通常非常有限。

我在我相信的表单上使用了正确的 enctype:

非常感谢任何提示或解释!我是后端的完整初学者,所以不要害怕为我拼写它:)

0 投票
0 回答
140 浏览

javascript - 如何实现文件上传的恢复暂停功能?我正在使用节点 js、gridfs 和 multer

我已使用以下链接在我的应用程序中工作的 mongodb 中上传文件: https ://dev.to/shubhambattoo/uploading-files-to-mongodb-with-gridfs-and-multer-using-nodejs-5aed

但是我需要在上传文件时实现恢复和暂停功能。文件可以是任何扩展名(主要是 webm)。如何为单个文件实现它?

此外,如果文件被暂停,那么我如何获取“fs.chunks”中上传的块数?在“fs.files”中,我们有 chunkSize 可能有帮助吗?

0 投票
0 回答
28 浏览

node.js - Multer 和 GridFS :- 这些到底是什么?

我想了解 GridFs 到底是什么。为什么我们需要它。它解决了哪些挑战?

还要向我解释 multer-gridfs-storage 和 gridfs-stream 。我们如何使用一个来让客户在他们的文件系统上下载一些东西?

我知道这是一个非常广泛的问题,如果你能引导我理解它们并让我理解流程就会很有帮助。

0 投票
0 回答
40 浏览

node.js - 初始化 GridFS 流时无法从回调函数中获取 gfs 值

我正在学习使用 gridFS 将文件或图像上传到 MongoDB我正在关注此视频https://www.youtube.com/watch?v=3f5Q9wDePzY 但我无法在回调函数之外获取 gfs 实例当前版本的包是“ crypto-js”:“^4.0.0”,“express”:“^4.17.1”,“gridfs-stream”:“^1.1.1”,“方法覆盖”:“^3.0.0”,“猫鼬”:“^5.12.10”,“multer”:“^1.4.2”,“multer-gridfs-storage”:“^4.2.0”,

提前致谢

0 投票
0 回答
17 浏览

mongodb - 如何构建gridfs mongodb express.js 路由

谁能告诉我这个中间件应该如何构建?现在它正在读取 gfs 或 gfs11,但不能同时读取两者。我应该如何在同一个中间件中正确获取不同的集合?

0 投票
2 回答
2901 浏览

node.js - “TypeError:GridFsStorage 不是构造函数”

出于某种原因,我不断收到“TypeError:GridFsStorage 不是构造函数”错误。我不知道为什么它会给我这个错误,因为我只是在关注官方文档。

存储和上传

要求

漏洞

0 投票
0 回答
49 浏览

node.js - 猫鼬中的连接超时

我正在尝试上传媒体文件和一些字符串,但连接超时。

我想将带有文件详细信息的图像、视频等媒体文件上传到 MongoDB。

上传媒体文件时,我输入的详细信息没有。(媒体文件的描述和名称)

我得到的错误是 [在此处输入图像描述][1] MongooseError: Operation `mediainfos.insertOne()` buffering timed out after 10000ms at Timeout.<anonymous>

我正在使用的代码是

MediaInfo 是架构

错误图像 [1]:https ://i.stack.imgur.com/DqMdC.png