【问题标题】:GridFS to store files in MongoDB using Mongoose and AngularJSGridFS 使用 Mongoose 和 AngularJS 在 MongoDB 中存储文件
【发布时间】:2016-04-05 10:02:59
【问题描述】:

我一开始几乎不知道如何使用 Mongoose 和 Angular 将文件存储到 NoSQL MongoDB。 经过大量研究,我最终找到了问题的答案,我不得不使用 GridFS。问题是我已经找到了关于如何使用 GridFS 的各种方法,但我从来没有找到一个详细解释过的方法,我似乎只能找到 Mongoose 的一面。 我想知道是否有人可以启发我如何一起使用 Angular 和 Mongoose 上传文件

【问题讨论】:

    标签: angularjs node.js mongodb mongoose gridfs


    【解决方案1】:

    主要有两种方法可以做到这一点。

    首先,我不推荐使用 Grid FS,因为这样您将直接将整个块保存在数据库中,并且 GRID FS 系统实际上会制作部分文件来保存它,这样速度就不会受到严重影响。但是负载大小仍然会受到影响。

    查看本教程http://excellencenodejsblog.com/gridfs-using-mongoose-nodejs/ 第二种方法——我用过的

    使用文件系统保存文件,然后将其 URL 保存在 Mongo DB 中。

    步骤

    对角部分使用 ng-file-upload 模块。它非常简单,并且有许多现成可用的演示。

    在node js的后端使用Multer之类的Module将文件保存到文件系统中,然后可以直接调用函数,最终将文件保存到文件系统后将数据保存到数据库中。

    Multer 和 ng-file-upload,两者都非常有名,支持社区非常广泛。

    如果您需要更多帮助,请告诉我。

    【讨论】:

    • 感谢我正在阅读 ng-file-upload 并创建了这个提琴手来帮助理解我的问题并帮助我。 jsfiddle.net/rdsqgxoj/16 到目前为止的问题:未选择文件时按钮不会禁用,选择文件时“*必需”标记不会消失,我想要某种控制文件在上传之前具有正确的格式以及某种警报会告诉您这是不正确的文件格式。
    • Tom 请仔细阅读 ng-file-upload 的文档。您提到的任何内容都可以直接使用其现成的功能。
    • 检查此小提琴jsfiddle.net/danialfarid/maqbzv15/544 以了解您所需的相关要求并限制使用的文件类型:ngf-pattern="'.pdf,.jpg,video/*,!.jog'" I将再次要求您检查那里提到的文档中的验证。祝你好运。
    • 这部分我现在可以工作了,非常感谢!但是现在我被困在猫鼬位上,我使用了 multer 并且对如何在路径中接收文件有了一个很好的想法,但我仍然不知道如何将文件存储到我的 MongoDB 中,所以我被困在这个位app.post('/Upload', upload.single('solution') ,function (req, res, next) { }); 所以现在我该如何上传它。在github页面上没有找到任何基础教程或文档
    • Multer 不会将图像保存在您的数据库中。它会将文件保存在文件系统中 - 就像在系统目录中一样,您可以在数据库中拥有该文件的路径。请阅读原始答案。如果您需要更多说明,请告诉我。
    猜你喜欢
    • 2013-10-27
    • 2014-05-11
    • 2015-01-25
    • 2015-04-06
    • 1970-01-01
    • 2015-12-21
    • 2016-04-07
    • 2015-09-23
    • 1970-01-01
    相关资源
    最近更新 更多