3

我正在使用以下流星包上传图像

https://github.com/CollectionFS/Meteor-CollectionFS

我正在使用的代码

Uploads =new FS.Collection('uploads',{
  stores: [new FS.Store.FileSystem('uploads',{path:'~/projectUploads'})]
});

if (Meteor.isClient) {

  Template.makedobox3.events({

       'change .fileinput':function(event,template){
        FS.Utility.eachFile(event,function(file){
        var fileObj=new FS.File(file);
        Uploads.insert(fileObj,function(err){
            console.log(err);
        });


      })
   }
  });  
}

当我尝试在控制台中上传文件时出现错误

M...rm...e.errorClass {错误:404,原因:“找不到方法”,详细信息:未定义,消息:“找不到方法 [404]”

我在窗口环境中。安装了自动发布和不安全的软件包。我不确定我错过了什么?

4

1 回答 1

5

确保您还在服务器端定义了这个集合:

Uploads =new FS.Collection('uploads',{
    stores: [new FS.Store.FileSystem('uploads',{path:'~/projectUploads'})]
});

它找不到该方法的原因是该集合未在服务器端(在/server文件夹中)或在运行的代码块中定义,if(Meteor.isServer) {而不是在if(Meteor.isClient).

一种替代方法是 Meteor 是同构的,因此您可以将集合定义从Meteor.isClient块中移出,以便它在客户端和服务器上运行。

于 2015-06-18T10:07:26.590 回答