Meteor在启动功能中获得userId

时间:2013-05-27 19:51:35

标签: meteor

如何在userId函数中获取Meteor.startup任何想法?我需要它来运行一个每10秒ping一次的循环,但我得到的只是Error: Meteor.userId can only be invoked in method calls. Use this.userId in publish functions.

我的代码:

Meteor.startup(function() {
    console.log(Meteor.userId());
});

2 个答案:

答案 0 :(得分:1)

您不太可能在Meteor.userId()函数中获得startup,因为来自订阅的数据(例如谁登录)将需要一段时间才能到达,到那时启动会已经完成了。

改为使用Tracker.autorun()

Tracker.autorun(function() {
    if(Meteor.userId()) {
        ///
    }
});

小心这将在用户登录时运行。确保它只运行一次就可以使用Session来存储它运行的次数,并在运行多次时停止它。

答案 1 :(得分:0)

错误消息中明确提到了答案。顺便说一下,在尝试打印之前,您需要检查是否已登录。

Meteor.startup(function() {
    if (this.userId)
        console.log(this.userId);
});