Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Meteor JS-允许/拒绝规则_Meteor - Fatal编程技术网

Meteor JS-允许/拒绝规则

Meteor JS-允许/拒绝规则,meteor,Meteor,在示例应用程序“parties”中,有一组parties集合的允许/拒绝规则。 insert的规则如下所示: Parties.allow({ insert: function (userId, party) { return false; // no cowboy inserts -- use createParty method },... 同时,方法createParty实现Parties.insert({….}),它不受应用于Parties集合的规则的影响 ..... r

在示例应用程序“parties”中,有一组parties集合的允许/拒绝规则。
insert
的规则如下所示:

Parties.allow({
  insert: function (userId, party) {
    return false; // no cowboy inserts -- use createParty method
  },...
同时,方法createParty实现Parties.insert({….}),它不受应用于Parties集合的规则的影响

.....
return Parties.insert({
      owner: this.userId,
      x: options.x,
      y: options.y,
      title: options.title,
      description: options.description,
      public: !! options.public,
      invited: [],
      rsvps: []
    });
.....
有人能解释为什么createParty方法不受规则的影响吗


谢谢。

createParty位于
Meteor.methods
中,通过从客户端调用
Meteor.call('createParties')
在服务器和客户端运行。在客户端上,它不会插入任何数据,但在服务器上运行的方法将插入参与方


Meteors
allow
deny
规则直接控制来自客户端的内容,不适用于服务器端运行的任何内容。

迅速尝试证明Akshat关于
Meteor的陈述。方法
仅在服务器上运行。这似乎是真的:不总是这样。如果某个方法对客户端可用(例如,未包装在
Meteor.isServer
中),则客户端和服务器都将执行该方法调用。您只需在
createParty
方法的顶部添加一个
控制台。log
即可看到这一点。更新了答案以包括这一点,我不知道它也在客户端上运行,然后我意识到我总是在Meteor中使用它们。isServer Blocks进一步说明:Meteor只需要一个
允许
就可以说是。如果您有多个
允许
选项,则并非所有选项都有效。如果要确保拒绝恶意插入,请改用
deny
。另外,如果使用
deny
,则必须至少有一个
allow
(即使是
return true;
)。