Meteor JS中collection.allow的技术指南?

Meteor JS中collection.allow的技术指南?,meteor,Meteor,我需要知道Meteor JS中collection.allow()的技术含义。我已经学习了Meteor文档,但没有正确理解。因此,请您使用下面的代码解释下面的术语 医生是什么 如何检查Posts.allow()是否返回true/false 单击按钮时如何调用以下方法,如插入、更新和删除 如何在Meteor JS中使用以下方法编写插入、更新和删除查询 如何检查多个人是否允许插入、更新和删除查询 你能给我一些关于上述事情的建议吗 Posts = new Meteor.Collection

我需要知道Meteor JS中collection.allow()的技术含义。我已经学习了Meteor文档,但没有正确理解。因此,请您使用下面的代码解释下面的术语

  • 医生是什么

  • 如何检查Posts.allow()是否返回true/false

  • 单击按钮时如何调用以下方法,如插入、更新和删除

  • 如何在Meteor JS中使用以下方法编写插入、更新和删除查询

  • 如何检查多个人是否允许插入、更新和删除查询

你能给我一些关于上述事情的建议吗

    Posts = new Meteor.Collection("posts");

    Posts.allow({
      insert: function (userId, doc) {
        // the user must be logged in, and the document must be owned by the user
        return (userId && doc.owner === userId);
      },
      update: function (userId, doc, fields, modifier) {
        // can only change your own documents
        return doc.owner === userId;
      },
      remove: function (userId, doc) {
        // can only remove your own documents
        return doc.owner === userId;
      },
      fetch: ['owner']
    });

这些方法用于验证客户端请求的插入/更新/删除。如果客户端调用
Posts.insert(somePost)
。服务器将使用
Posts。允许
验证是否确实可以执行此操作。要直接回答您的问题:

what is the doc?
这些方法中的
doc
是客户端传入的文档。在我上面的例子中,它将是
somePost

How to check Posts.allow() is return true/false?
Posts.allow()将检查用户是否可以插入帖子,如果可以,则返回
true
;如果不能,则返回
false
(这是您的责任)。在您的示例中,必须有一个有效的userId,并且文档的所有者必须是当前登录的用户。由于您的
doc
是一个JSON对象,因此在本例中它必须有一个
owners
字段。如果您总是返回false,那么任何客户端都无法创建帖子。如果您总是返回true,那么任何插入帖子的请求都将被接受

How to call the below methods like insert,update & remove when ever clicks a button?
实际上,您从未直接调用这些方法。当客户机试图插入/更新/删除帖子时,会为您调用它们

How to write queries to insert, update & remove using the below methods in Meteor JS?
同样,您实际上从未直接调用这些函数,但是当您执行
Posts.insert(somePost)
时,它将自动尝试根据
insert
allow方法进行验证。如果收到
true
则插入post。如果它收到一个
false
,它将抛出一个异常

How to check more than one person allows to insert,update & remove queries?
不完全确定您的意思,但如果您有两个人登录,并且他们都试图插入帖子,您可以在方法中的
userId
字段中唯一地验证他们


更新:

我将详细说明你的评论问题。文档对象上只有一个owner属性。传入的文档可能如下所示(简化):


因此,
doc.owner
会给你文档的所有者id。然后你可以将它与传入的
userId
进行比较,看看他们是否是同一个人。

你能给我一些关于doc.owner的建议吗@Firo@Venkat看看我的编辑/更新!
doc = {
    "name":"My Important Document",
    "description": "This is a great document.",
    "createdOn": 1394043417621,
    "owner": b8QsgX3awg7E9DMKs
}