Javascript Meteor js:在客户端上保存集合

Javascript Meteor js:在客户端上保存集合,javascript,mongodb,meteor,client-side,Javascript,Mongodb,Meteor,Client Side,我有一个产品集合,我想允许用户向其中添加多个图像 问题是我想立即上传图片,但因为产品尚未保存,所以图片无法嵌入或通过外键加入 是否可以在产品保存后将图像存储在客户端。是否将图像添加到产品数据库 我应该如何解决这个问题? 谢谢 在Meteor中,由于“到处都有数据库”的模式,图像将“立即”上传,即它们将乐观地存储在MiniMongo客户端数据库中,然后发送到服务器。如果它们被服务器拒绝,则应生成一个错误,说明拒绝的原因(在服务器日志中) 有关如何使用CollectionFS上载文件的代码示例,请参

我有一个产品集合,我想允许用户向其中添加多个图像

问题是我想立即上传图片,但因为产品尚未保存,所以图片无法嵌入或通过外键加入

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

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


在Meteor中,由于“到处都有数据库”的模式,图像将“立即”上传,即它们将乐观地存储在MiniMongo客户端数据库中,然后发送到服务器。如果它们被服务器拒绝,则应生成一个错误,说明拒绝的原因(在服务器日志中)

有关如何使用CollectionFS上载文件的代码示例,请参阅

,例如,似乎是您正在寻找的:

Template.myForm.events({
“change.myFileInput”:函数(事件、模板){
eachFile(事件、函数(文件){
image.insert(文件,函数(err,fileObj){
//如果!错误,我们已插入ID为fileObj.\u ID的新文档,并且
//使用HTTP启动数据上载
});
});
}
});
一旦文件存储在客户机数据库中,您应该能够立即显示它们,例如使用


如果这没有帮助,请提供回购的链接或更多详细信息。问题,例如正在生成的任何错误,esp服务器端错误。

大约一年前,我和你一样努力让FSCollection在我的应用程序上工作,所以我希望它对你有用。嘿,你误解了问题。我可以很好地上传图像,它们会立即显示出来。但问题是,我想将图像集合嵌入到产品集合中。类似于sql类型数据库中的外键关联。现在这是一个问题,因为所有的图像都会立即上传,它们会在产品被保存到数据库之前被上传,所以这些图像不知道它们属于谁。我在问是否有一种方法可以在minimongo客户端数据库中保存图像收集,直到提交产品为止。然后我可以加入他们。哦,在这种情况下,你可能在寻找一个收集钩子,在插入之前创建关联。看见
var imageStore = new FS.Store.GridFS("images");

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