Mongodb 将文件存储在Mongo';上传后使用ExpressJS创建GridFS

Mongodb 将文件存储在Mongo';上传后使用ExpressJS创建GridFS,mongodb,express,gridfs,Mongodb,Express,Gridfs,我已经开始使用expressJS构建RESTAPI。我是新来的节点,所以请容忍我。我希望能够让用户使用post-to/upload路径将文件直接上传到Mongo的GridFS 根据我在expressJS文档中的理解,req.files.image对象在上传后在路由中可用,它还包括路径和文件名属性。但是我如何才能准确地读取图像数据并将其存储到GridFS中呢 我已经调查过了,但我不能把两端连在一起。我是否需要先读取文件,然后将该数据用于writestream管道?或者我可以使用express中的f

我已经开始使用expressJS构建RESTAPI。我是新来的节点,所以请容忍我。我希望能够让用户使用post-to/upload路径将文件直接上传到Mongo的GridFS

根据我在expressJS文档中的理解,req.files.image对象在上传后在路由中可用,它还包括路径和文件名属性。但是我如何才能准确地读取图像数据并将其存储到GridFS中呢

我已经调查过了,但我不能把两端连在一起。我是否需要先读取文件,然后将该数据用于writestream管道?或者我可以使用express中的file对象并使用这些属性来构造writestream吗?任何提示都将不胜感激

这里有一个简单的演示:

我用来上传一个文件:

http --form post localhost:3012/upload filename@~/Desktop/test.png
如果文件已上载,您可以检查数据库:

$ mongofiles list -d test
connected to: 127.0.0.1
test.png    5520
您也可以再次下载:

http --download get localhost:3012/download?filename=test.png

这正是我想要的,非常感谢!你有没有关于这方面的进一步文档的来源?有一本很好的关于流如何工作的手册。当你对它们的工作原理有了一个想法,我想我发布的大部分代码都会变得更容易理解:)谢谢你,这真的帮助了我。另外,对于那些使用Mongoose的用户,您需要在上面做的唯一更改是:var gfs=Grid(db,Mongoose.mongo)@MikePateras谢谢你的提示,我很快就会将GridFS与Mongoose结合使用,这样可以节省我的查找时间;)我按照代码下载,但没有工作。有完整代码的工作示例吗?
http --download get localhost:3012/download?filename=test.png