Meteor.user()在Chrome中不起作用

时间:2017-12-12 15:14:54

标签: google-chrome meteor meteor-accounts

我正在尝试console.log(Meteor.user().profile.group):但它会导致以下错误:

  

未捕获的TypeError:无法读取未定义的属性“profile”

单独使用Meteor.user()会返回undefined。

以下是Mongo的用户详细信息:

{
        "_id" : "ccZztbFqw2MpgTsjX",
        "createdAt" : ISODate("2017-12-12T15:11:23.645Z"),
        "services" : {
                "password" : {
                        "bcrypt" : "$2a$10$lsYo7wjhA77.8TmNYeMTQ.u3jZzJSiIxsJrMRkjOPINHuLhBOENqm"
                }
        },
        "emails" : [
                {
                        "address" : "111@211.com",
                        "verified" : false
                }
        ],
        "profile" : {
                "name" : "11111",
                "createdAt" : ISODate("2017-12-12T15:11:23.558Z"),
                "updatedAt" : ISODate("2017-12-12T15:11:23.558Z"),
                "group" : "user"
        }
}

为什么Meteor.user()无法在Chrome中运行?

注意: Meteor.user().profile.group使用Microsoft Edge浏览器将组打印到控制台

2 个答案:

答案 0 :(得分:2)

它可以工作,但是从服务器下载用户文档需要一段时间。

首次在浏览器中加载应用时,Meteor.user()可能未定义。

你的用例是什么?如果要访问模板中的当前用户,可以使用currentUser帮助程序:

{{#if currentUser}}
    {{currentUser.profile.group}}
{{/if}}

如果您从Chrome开发者控制台拨打Meteor.user(),您还可以看到其中的内容。

答案 1 :(得分:-2)

默认情况下,Meteor不公开用户集合(为了您自己的利益),如果您想控制暴露的内容,而不是简单地为“userData”添加发布函数。