使用Accounts.FindUserByUsername在“用户”集合(流星)中搜索用户名

时间:2019-03-06 08:58:43

标签: javascript meteor meteor-blaze meteor-accounts

在此非常感谢您的帮助。现在已经将我的头撞在桌子上了几个小时。

我正在尝试创建一个简单的搜索功能来搜索用户名。我的目标是能够搜索用户名,并最终将所选的用户名添加到“团队”集合中。

我尝试过轻松搜索,但是没有运气。我正在尝试使用Accounts.FindUserByUsername,但我一直未定义。我已经安装了帐户密码,顺便说一句。

这是我的代码:

服务器端:

    Meteor.methods({
   findUser: function (username) {
      const user = Accounts.findUserByUsername(username)
      return user
   }
})

客户端:

Template.search.helpers(function() {
   Meteor.call('findUser', 'username', findUserCallback)
})
function findUserCallback(error, username) {
   console.log(username)
}
Template.search.events({
   'submit .search'(event) {
      event.preventDefault()
      Meteor.call('findUser', 'username', findUserCallback)
   }
})

我知道我做错了什么,但我不知道该怎么办。我在网上找不到太多帮助。

非常感谢–非常感谢!

1 个答案:

答案 0 :(得分:0)

欢迎堆栈溢出朱莉娅。

Meteor用户集合很特殊,因为它用于身份验证,并且由于安全风险,建议不要在UI中访问其他用户。

通常会有另一个名为“玩家”或“成员”的收藏集-这样做的好处是您可以存储其他信息,并且可以轻松发布/订阅这些收藏集并进行操作,而无需编写流星方法可以完成您的工作。

在新集合中,您可以存储用户的_id,因此,如果需要,您可以始终引用用户记录(即用户名)。