检查Meteor中是否存在用户名

时间:2016-01-02 13:45:53

标签: meteor

一直在寻找解决方案,但没有为Meteor。如果有的话,请告诉我。我想检查一下是否已经使用了用户名。

据我所知,这仅适用于服务器端:

u = Accounts.findUserByUsername('foo');
console.log(u.username); #=> foo

我无法理解他们的pub / sub,因为我只能看到基于当前用户的信息。流星说我想要的是不可能的吗?

当用户在注册时填写他们的详细信息时,如果他们使用的用户名已被使用,我希望他们收到警报(当他们输入时)。但是这个逻辑我可以很容易地编码,但需要知道如何与服务器交谈以告诉我信息。

1 个答案:

答案 0 :(得分:3)

您可以为此编写一个Meteor方法:

Meteor.methods({
  doesUserExist(name) {
    return Accounts.findUserByUsername(name) != null;
  }
});

请注意,您必须在服务器上定义此方法,而不是在客户端上定义(例如,通过在 server 目录中的文件中定义它)。这样Meteor就不会尝试在客户端上模拟它(因为Accounts.findUserByUsername没有在那里定义,因此会失败)。

在用户输入时调用方法:

Meteor.call('doesUserExist', name, function(error, result) {
  // `result` is true if the user exists.
});