问题标签 [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.
node.js - Mongoose gridfs-stream grid.mongo.ObjectID 不是 new GridWriteStream 的构造函数
我正在尝试使用 gridfs-stream,但在将图像文件发布到我的上传控制器时遇到问题。当它试图创建写入流时返回grid.mongo.ObjectID is not a constructor at new GridWriteStream
我四处搜寻,并没有真正找到任何可以帮助我解决这个问题的东西,调试也没有发现任何我可以使用的东西,这对我来说都是新技术。
这是我的代码:
我也尝试将mongoose.mongo
gfs 对象作为第二个参数传递,但这也引发了关于能够读取的错误readPreferences of undefined
node.js - 使用 multer 和 multer-gridFs-storage 将图像上传到 mongo DB 时出错
TypeError:无法读取未定义的属性“readPreference”
服务器代码(register.js)
邮递员请求
我正在尝试使用 multer 和 multer-gridFs-Storage 上传图像,但遇到了这个问题。两天以来,我一直被困在这一点上。不知道问题的根本原因。似乎在 createWriteStream 点我在控制台中收到此错误。有什么建议么?
node.js - gridfs-stream 图像发布生成的集合,但请求永远不会完成
我正在尝试将图像上传到我的 MongoDB。我正在使用 Mongoose、gridfs-stream 和其他一些我被告知要安装的软件包(我对整个 MEAN 生态系统相对较新)
请求似乎顺利通过,用于 fs-stream 的集合确实会自动添加到我的数据库中,但请求似乎总是超时,没有返回错误,nodemon 也没有记录任何内容。
这是我的代码:
我曾尝试在本地运行 mongodb,在 mlab 上,我也尝试过不同大小的图像,其中大多数小于 10MB,有些小于 1MB。我不知道从这里何去何从,因为我对此事的研究也没有提供任何答案。
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
应该如何设置?为什么没有定义?
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 没有按预期工作。请帮忙!
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 的缓冲区服务器端?请帮忙!
如果您需要更多信息,请告诉我,我会提供。
node.js - 错误:必须打开数据库连接才能存储文件 - 使用 GridFSStorage 上传文件时出错
我正在使用节点服务器将文档作为 blob 上传到 mongodb 数据库中。我在启动自身的节点服务器上使用猫鼬启动了连接。但是在调用上传 API 时出现以下错误。
但是节点已经连接到 mongo db,我也可以访问其他 API。请找到我的
server.js
documentRoutes.js
请帮助查找问题。
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 不是函数
这是我的数据库连接
这是我从数据库获取图像的代码
javascript - 是否有可能使用函数不存在?
当我打印
让 app = express()
在控制台上打印是这样的。
在代码片段内部,有一个 on: 函数等...所以我认为这使我可以像这样 app.on(...)
但是,当我在控制台上打印 gfs 对象时,它会打印这个。这是我的示例链接:https ://github.com/qkreltms/mongodb_simple_file_upload_to_db_example/blob/master/app.js
gfs.collection('上传');
你可以看到它里面没有收集功能,但是即使它在控制台上不存在,它也可以工作。那么问题来了,收集功能从何而来?
谢谢。
node.js - 在 React 应用程序中显示来自 Gridfs 存储的视频
我正在使用multer-gridfs-storage
并将gridfs-stream
我的视频存储在后端(Express/Node)中。当我尝试检索要在我的前端(React)上播放的文件时,播放器拒绝识别源。
我正在使用 Video-React 来显示下载的视频。下载成功,我从后端得到一个二进制字符串,我将其转换为 Blob。
这是我正在渲染的 Video-React 播放器
然后我尝试了两种技术
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
设置正确,但视频永远不会加载
URL.createObjectURL
let vidURL = URL.createObjectURL(fileBlob); rThis.setState({fileURL: vidURL}, () => { rThis.refs.player.load(); });
src
设置为blob:
url 但仍然没有
这是 Video-react 的问题还是我应该做其他事情?我可以查看的任何指向引用的指针也会有所帮助。我究竟做错了什么?dataURL 适用于图像,我检查过,但不适用于视频。