问题标签 [gridfs-stream]

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 回答
1182 浏览

mongodb - 从 MongoDB 下载图像文件

尝试使用路由从 MongoDB 下载图像文件:

堆栈跟踪:

版本:

在 createReadStream 行上搞砸了。文件肯定在数据库中,“fs.files & fs.chunks”。

现在尝试通过 Postman 访问。

0 投票
1 回答
156 浏览

node.js - Gridfs删除文件错误

我正在使用 mongoose 和 mongoose-gridfs 模块,但不知道如何修复错误。可以轻松地将文件添加到我的数据库并读取它:

但是当我在删除路线中使用相同的方式时:

它给我一个错误 TypeError: Cannot read property 'unlink' of null。我究竟做错了什么?

0 投票
1 回答
539 浏览

node.js - 我将视频文件保存到 mongodb 后端,如何将数据流式传输到 html 视频标签

我正在做一个项目,我将用户上传的视频保存到 mongodb 后端。请我想从经验丰富的开发人员那里获得关于将这些数据作为 HTML5 视频标签发送到前端的最佳策略的见解。

0 投票
1 回答
4306 浏览

node.js - Gridfs 和 mongoose 文件上传

我遇到了gridfs文件上传的问题。基本上我得到了这个奇怪的错误,我还没有找到解决这个问题的解决方案。

这是我应该处理文件上传的代码:

尝试运行我的代码时,出现此错误:

我正在使用 Mongoose 版本 4.11.12 和 Gridfs-stream 版本 1.1.1
有人知道应该怎么做才能让这个东西正常工作吗?

0 投票
1 回答
286 浏览

javascript - Express.js 和 gridfs-stream 无法捕获错误

它是一个简单的图像(图片)下载服务器,Express.js 接收请求,从 MongoDB GridFS 获取图像,并以文件响应。

当请求有效时(当请求的文件存在时)就可以了。

问题是我无法捕获MongoError查询失败的时间(即请求的图像不存在)。

这是路由器

我就是抓不住错误。当我尝试请求一些不存在的东西时,控制台中的节目会显示出来,并且应用程序会因isMongoError崩溃。errno1

控制台输出负责人:

这可能有点不同。如果其他地方抛出 an Error,它将被我的错误处理程序 ( app.use(function(err, req, res, next){ /* ... */})) 捕获,或者至少被来自 的默认处理程序捕获Express.js,并返回 a 500,而不会导致进程崩溃。

简而言之,我希望应用程序知道并捕捉到这一点MongoError,以便我可以手动处理它(即返回404响应)。

0 投票
1 回答
1967 浏览

javascript - 使用 gridfs-stream 执行 find() 时如何指定 GridFS 存储桶

使用gridfs-stream,如何在查找和获取文件时指定存储桶名称?

我的问题是在我如何指定 GridFS 存储桶的stackoverflow 上找到的以下问题的后续问题

那里的解决方案提供了一个示例,说明在我调用 createWriteStream 时如何指定存储桶。根据@vsivsi 提供的代码,我可以使用以下代码中的“root”选项将文件添加到我的自定义存储桶中:

这成功地将我的文件添加到 private.files 和 private.chunks。所以现在我想查找并阅读我上传的文件。我的不使用存储桶的 find() 如下所示:

现在我如何知道要查询哪个存储桶/根?

我假设当我调用 createReadStream() 时我将能够使用相同的“root”选项,但首先我需要找到它。有没有办法告诉 gridfs-stream 使用什么桶/根?

0 投票
0 回答
36 浏览

node.js - Node + mongo gridfs 原子性

Mongo 本身不能保证多文档事务的原子性。

考虑到通过 mongo 的 gridfs 功能(我gridfs-stream从 npm 使用)存储文件的方法涉及创建多个文档,我想知道它在以下方面是否可靠:

1)如果由于某种原因无法创建某些文件块,是否不会创建文档?或者数据库是否会处于文件只保存了一些块的状态?

2)如果运行 mongo 的服务器在 gridfs 文件上传过程中突然断电或崩溃,重新启动后数据库是否可能包含损坏或部分上传的文件?

谢谢!

0 投票
1 回答
555 浏览

javascript - 如何在 javascript 类中打开 mongoDB 实例?

我已经使用 mongoDB 连接创建了一个数据库类,但我不知道如何在这种情况下打开一个数据库实例。

我如何在课堂上使用它?

0 投票
1 回答
142 浏览

javascript - 如何在 gridfs-stream 中使用和尚发起的 mongoDB 实例?

我正在使用gridfs-stream. 在文档中有一个 mongodb 本机数据库的示例:

...而且我正在使用monk,它也是基于 mongodb 原生驱动程序的。

不幸的是,我对 mongoDB 的实现不是很熟悉,所以我不太确定,如果我也可以使用带有 gridfs-stream 的和尚连接的数据库:

...通过这种尝试,我不知道从哪里得到mongo

0 投票
1 回答
1017 浏览

node.js - 将猫鼬作为参数传递给函数

我正在开发一个节点模块。我需要将猫鼬传递给我的模块以从中获取三件事(mongoose.connectionmongoose.connection.dbmongoose.mongo)。

index.js (myModule - 我开发的模块)

db.js(用户必须像这样使用 myModule)

然后用户可以使用readyObj来完成他/她的工作。我的问题是myModule函数中只有mongoose.connection可用,我收到此错误(gridfsLockingStreamn 导致错误):

错误:缺少 db 参数

新网格(db,mongo)

我在用着 :

一种解决方案(来自@GrégoryNEUT 的想法)(但我认为这不是正确的方法):

index.js 没有变化

db.js使用promise和mongoose事件处理程序

photoRouter.js(用户的文件之一 - 用户想要使用readyObj

代码可以改进吗?