错误:在调用'/ collection / update'期间没有检查()所有参数

时间:2013-11-06 11:49:40

标签: meteor

当我尝试对集合进行更新时,Meteor会在服务器上抛出异常。

Exception while invoking method '/reports/update' Error: 
    Did not check() all arguments during call to '/reports/update'

电话很简单:

Reports.update({ _id : this._id },{ $set : query });

更新

我尝试在更新前添加'check'

尝试了两个版本,结果相同:仍然抛出异常 版本1

check(query, Match.Any);

第2版

var update = { $set : query };
check(update, Match.Any);

该集合的allow方法定义为允许任何内容:

  Reports.allow({
     insert: function(){
        return true;
     },
     update: function(){
        return true;
     },
     remove: function(){
        return true;
     }
  })

我可以在哪里放check(query, Match.Any)

1 个答案:

答案 0 :(得分:0)

从事件或流星方法来看,配偶是相同的。 这是一个例子:

Template.YourTemplateName.events({
"click #yourElement:function(event,template){
check(query,Match.Any);
 console.log("working");
 //will always log "working" 
}
});

"click #yourElement:function(event,template){
check("String",Number);
 console.log("Not working");
 //will throw an error and will not execute the log 
}
});

你也可以尝试Match.test,如果值与模式匹配,它将返回true。 例如:

   "click #yourElement:function(event,template){
        if(Match.test("String",String)){
         console.log("working");
         //will execute  
        }
       }
     });