【发布时间】:2014-11-25 21:05:30
【问题描述】:
我创建了一个简单、简约的diary app。
在客户端,我使用
Meteor.subscribe('entries', Meteor.userId());
订阅用户创建的条目(存储在 mongodb 集合中)。我将用户 ID 传递给发布功能(在服务器上):
Meteor.publish('entries', function(userID) {
return Entries.find({userId: userID});
});
登录后,Meteor.userId() 不再是虚假的,因为它是一个反应式数据源。不过,相关数据并未公布。我通过自动运行订阅功能解决了这个问题:
Tracker.autorun(function() {
Meteor.subscribe('entries', Meteor.userId());
});
它有效,但我觉得这是一个糟糕的解决方案。
那么问题来了: 一般而言,应该如何发布与用户相关的数据?必须有更好的方法来做到这一点,而不是将用户 ID 传递给发布函数。还有,是不是很不安全?
顺便说一下,很想听听有关该应用的反馈
【问题讨论】:
-
在您的发布功能中,您可以访问
this.userId以安全地检索调用用户的 ID。 - 编辑:我觉得这应该是你问题的答案!要我这样发布吗? -
哦。我不知道我可以通过“this”访问当前用户。谢谢!