我正在尝试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浏览器将组打印到控制台
答案 0 :(得分:2)
它可以工作,但是从服务器下载用户文档需要一段时间。
首次在浏览器中加载应用时,Meteor.user()可能未定义。
你的用例是什么?如果要访问模板中的当前用户,可以使用currentUser
帮助程序:
{{#if currentUser}}
{{currentUser.profile.group}}
{{/if}}
如果您从Chrome开发者控制台拨打Meteor.user()
,您还可以看到其中的内容。
答案 1 :(得分:-2)
默认情况下,Meteor不公开用户集合(为了您自己的利益),如果您想控制暴露的内容,而不是简单地为“userData”添加发布函数。