如何保护Meteor中的部分集合模式?

时间:2013-04-03 13:22:37

标签: meteor

我正在考虑在Meteor中构建我的下一个应用程序。我的数据模型包括要传递给客户端的对象,但其内容需要在推送之前动态过滤。

示例:

var obj = {
    name: "John",
    secret: "A very shy guy"
}

我希望能够访问服务器上的secret属性以及客户端上的“admin”用户,但是其他用户不应该在其客户端上看到。

实施此方法的最佳方法/框架是什么?

1 个答案:

答案 0 :(得分:4)

将meteor发布功能与您的集合一起使用,您可以使用排除或包含:

服务器端JS 排除:

Meteor.publish("mycollection", function () {
    return mycollection.find({}, {fields: {secretInfo: 0}});
});

服务器端JS 包含:

Meteor.publish("mycollection", function () {
    return mycollection.find({}, {fields: {name: 1}});
});

然后在您的客户端订阅此发布:

客户端js

Meteor.subscribe("mycollection");

有关meteor docs的发布功能的更多信息:http://docs.meteor.com/#meteor_publish

另请查看各方示例(使用截屏视频):http://meteor.com/examples/parties