Meteor js:在客户端保存集合

时间:2016-01-11 10:18:24

标签: javascript mongodb meteor client-side

我有一个产品系列,我想允许用户向他们添加多个图像。

问题是我想立即上传图片,但由于产品没有保存,但图片无法通过外键嵌入或加入。

是否可以在保存产品后存储客户端图像。我将图像添加到产品数据库中?

我该如何解决这个问题? 谢谢

var imageStore = new FS.Store.GridFS("images");

Images = new FS.Collection("images", {
  stores: [
    new FS.Store.FileSystem("original")
  ],
  filter: {allow: {contentTypes: ['image/*']}}
});

1 个答案:

答案 0 :(得分:0)

在Meteor中,图像会立即上传""由于" db无处不在"范例,即它们将被乐观地存储在MiniMongo客户端数据库中,然后发送到服务器。如果它们被服务器拒绝,则应该根据拒绝的原因(在服务器日志中)生成错误。

有关如何使用CollectionFS上传文件的代码示例,请查看these code samples at the CollectionFS wiki

例如,

This one似乎就是你要找的东西:

Template.myForm.events({
    'change .myFileInput': function(event, template) {
        FS.Utility.eachFile(event, function(file) {
        Images.insert(file, function (err, fileObj) {
        //If !err, we have inserted new doc with ID fileObj._id, and
        //kicked off the data upload using HTTP
      });
    });
  }
});

一旦文件存储在客户端数据库中,您应该能够立即显示它们,例如使用this method

如果这没有帮助,请提供指向回购或更多详情的链接。问题,例如正在生成的任何错误,尤其是服务器端错误。