问题标签 [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 投票
0 回答
1231 浏览

node.js - Mongoose gridfs-stream grid.mongo.ObjectID 不是 new GridWriteStream 的构造函数

我正在尝试使用 gridfs-stream,但在将图像文件发布到我的上传控制器时遇到问题。当它试图创建写入流时返回grid.mongo.ObjectID is not a constructor at new GridWriteStream

我四处搜寻,并没有真正找到任何可以帮助我解决这个问题的东西,调试也没有发现任何我可以使用的东西,这对我来说都是新技术。

这是我的代码:

我也尝试将mongoose.mongogfs 对象作为第二个参数传递,但这也引发了关于能够读取的错误readPreferences of undefined

0 投票
1 回答
1302 浏览

node.js - 使用 multer 和 multer-gridFs-storage 将图像上传到 mongo DB 时出错

TypeError:无法读取未定义的属性“readPreference”

服务器代码(register.js)

邮递员请求

在邮递员中请求有效负载

我正在尝试使用 multer 和 multer-gridFs-Storage 上传图像,但遇到了这个问题。两天以来,我一直被困在这一点上。不知道问题的根本原因。似乎在 createWriteStream 点我在控制台中收到此错误。有什么建议么?

0 投票
0 回答
109 浏览

node.js - gridfs-stream 图像发布生成的集合,但请求永远不会完成

我正在尝试将图像上传到我的 MongoDB。我正在使用 Mongoose、gridfs-stream 和其他一些我被告知要安装的软件包(我对整个 MEAN 生态系统相对较新)

请求似乎顺利通过,用于 fs-stream 的集合确实会自动添加到我的数据库中,但请求似乎总是超时,没有返回错误,nodemon 也没有记录任何内容。

这是我的代码:

我曾尝试在本地运行 mongodb,在 mlab 上,我也尝试过不同大小的图像,其中大多数小于 10MB,有些小于 1MB。我不知道从这里何去何从,因为我对此事的研究也没有提供任何答案。

0 投票
2 回答
308 浏览

node.js - mongodb topology.s.promiseLibrary 未定义

我在带有 Gridfs 的 node.js 中使用 mongodb,我TypeError: Promise is not a constructor这条线上遇到了。我已经追溯了一点,我可以看到在这条线上,topology.s.promiseLibrary是未定义的。我不知道我能做些什么来造成这种情况。我的理解是即使我没有连接 bluebird 或类似的东西,mongodb 也只会使用内置的 ES6 Promise。

奇怪的是,topology.s.options.promiseLibrary 定义了。我不确定我是否做错了配置它。我没有更改我的代码(我已经恢复到以前工作的代码)。我的节点版本是 v9.2.0。我的 Mongodb 是 3.10.0。我的 gridfs-stream 是 1.1.1。

如果我注释掉这一行,那么一切正常。

这是一个错误吗?可能是什么原因?似乎可能有外部原因,但我不确定在哪里继续搜索。topology.s.promiseLibrary应该如何设置?为什么没有定义?

0 投票
1 回答
303 浏览

meteor - 如何将服务器端文件插入图像、fs.files 和 fs.chunks -GridFS (Ostrio/files)

我在服务器端使用 Ostrio/files(也称为流星文件(来自 VeliovGroup 或keenethics))将文件插入到 db.images、db.fs.files 和 db.fs.chunks。我的代码只能在 db.images 中插入一条记录,而在 fs.files 和 fs.chunks 上没有任何内容。我的代码如下:

我可以使用以下代码将来自客户端的文件插入 db.images、db.fs.files 和 db.fs.chunks:

上面第一个片段的服务器代码不能正常工作或按预期工作。请帮助。

有关信息:我如何设置我的 gridFS 是按照 这个链接。我的 Images.write 按照我上面的第二个代码片段是按照 这个链接中的代码。简而言之,我正在关注文档,但我的服务器 Images.write 没有按预期工作。请帮忙!

0 投票
1 回答
1116 浏览

node.js - 使用 nodejs/npm 的请求包发布时,如何发布纯文件缓冲区而不是二进制编码文件?

我正在使用 npm 的请求包将文件缓冲区发布到使用 meteor.js restivus 包编写的 REST api。我发布到 api 的 node.js 客户端代码如下:

这里的问题/问题是在 request.post 中,文件被转换为二进制编码的 blob。请参阅上面代码中“request.post”第一个参数的“form:”属性中的注释。这在我的meteor.js 服务器上成为一个问题,其中文件需要作为缓冲区而不是二进制编码文件。(信息:我正在使用 Ostr-io/files 的 GridFS 来存储文件 - 它要求文件是缓冲区)

如果除了将文件作为编码字符串传递之外别无他法,那么有没有办法将该编码的 blob 转换回我正在使用/谈论 meteor.js 的缓冲区服务器端?请帮忙!

如果您需要更多信息,请告诉我,我会提供。

0 投票
0 回答
406 浏览

node.js - 错误:必须打开数据库连接才能存储文件 - 使用 GridFSStorage 上传文件时出错

我正在使用节点服务器将文档作为 blob 上传到 mongodb 数据库中。我在启动自身的节点服务器上使用猫鼬启动了连接。但是在调用上传 API 时出现以下错误。

但是节点已经连接到 mongo db,我也可以访问其他 API。请找到我的

server.js

documentRoutes.js

请帮助查找问题。

0 投票
1 回答
687 浏览

mongodb - Mongodb:使用流获取大文件

我正在使用 grid-stream 和 girdFsStorage 库从 mongodb 获取图像。

我将图像上传到 db 没问题,但是当我尝试从 db 获取图像时失败。

我预计 db.collection 会返回,gfs.files.findOne({ filename: req.params.filename }, (err, file) => {...} 但 this.db.collection 会返回。有任何想法吗?

TypeError:this.db.collection 不是函数

这是我的数据库连接

这是我从数据库获取图像的代码

0 投票
2 回答
138 浏览

javascript - 是否有可能使用函数不存在?

当我打印

让 app = express()

在控制台上打印是这样的。

在代码片段内部,有一个 on: 函数等...所以我认为这使我可以像这样 app.on(...)

但是,当我在控制台上打印 gfs 对象时,它会打印这个。这是我的示例链接:https ://github.com/qkreltms/mongodb_simple_file_upload_to_db_example/blob/master/app.js

gfs.collection('上传');

你可以看到它里面没有收集功能,但是即使它在控制台上不存在,它也可以工作。那么问题来了,收集功能从何而来?

谢谢。

0 投票
1 回答
382 浏览

node.js - 在 React 应用程序中显示来自 Gridfs 存储的视频

我正在使用multer-gridfs-storage并将gridfs-stream我的视频存储在后端(Express/Node)中。当我尝试检索要在我的前端(React)上播放的文件时,播放器拒绝识别源。

我正在使用 Video-React 来显示下载的视频。下载成功,我从后端得到一个二进制字符串,我将其转换为 Blob。

这是我正在渲染的 Video-React 播放器

然后我尝试了两种技术

  1. readDataAsURL

    let reader = new FileReader(); reader.onload = function(event){ //rThis is just a reference to the parent function this rThis.setState({fileURL: reader.result}, () => { rThis.refs.player.load(); }); } try{ reader.readAsDataURL(fileBlob); }catch(err){ console.log('Error trying readDataURL'); console.log(err); }

src设置正确,但视频永远不会加载

  1. URL.createObjectURL

    let vidURL = URL.createObjectURL(fileBlob); rThis.setState({fileURL: vidURL}, () => { rThis.refs.player.load(); });

src设置为blob:url 但仍然没有

这是 Video-react 的问题还是我应该做其他事情?我可以查看的任何指向引用的指针也会有所帮助。我究竟做错了什么?dataURL 适用于图像,我检查过,但不适用于视频。