一直在寻找解决方案,但没有为Meteor。如果有的话,请告诉我。我想检查一下是否已经使用了用户名。
据我所知,这仅适用于服务器端:
u = Accounts.findUserByUsername('foo');
console.log(u.username); #=> foo
我无法理解他们的pub / sub,因为我只能看到基于当前用户的信息。流星说我想要的是不可能的吗?
当用户在注册时填写他们的详细信息时,如果他们使用的用户名已被使用,我希望他们收到警报(当他们输入时)。但是这个逻辑我可以很容易地编码,但需要知道如何与服务器交谈以告诉我信息。
答案 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.
});