由于您的出版物只返回当前用户,客户端的答案后,只有一条记录,即当前登录的用户记录。如果你想访问其他用户,你可能需要做这样的事情。
Meteor.publish('users', function() {
if (this.userId) {
return Meteor.users.find({}, { fields: { 'services': 0 } }); //to return all users.. you might have to limit the users based on your requirements.
}
});
一旦您拥有此出版物,您可能需要检查您是否已订阅此出版物在您当前的模板中。如果您没有订阅这一点,订阅像这样,
Template.yourTemplate.onCreated(function() { //replace "yourTemplate" with your template name.
this.subscribe('users');
});
UPDATE:
如果你想检查用户名是否已经存在与否,你需要调用服务器方法是这样,
在服务器:
Meteor.methods({
'checkIfUserExists': function (username) {
return (Meteor.users.findOne({username: username})) ? true : false;
}
});
在客户端:
if (Session.get('taskSelected') == 'login') {
var username = inputDoc[0].value + '-' + inputDoc[1].value;
Meteor.call('checkIfUserExists', username, function (err, result) {
if (err) {
alert('There is an error while checking username');
} else {
if (result === false) {
alert('username not found.');
} else {
alert('A user with this username already exists..');
}
}
});
}
您是否意识到我必须从您提出的每个问题中删除mongodb标记?作为未来的提示,如果你实际上并没有询问关于mongodb查询语法或特定方法'.find()''.update()'等等,那么你的问题不是关于这个问题,而只是一个“流星”问题。请停止使用标签,除非问题实际上是关于所提及的主题。 –
@BlakesSeven噢,对不起,我认为这个问题可能在代码中的任何地方,如果条件被评估有mongo findOne方法和Meteor和Mongo连接,我应该包含这两个标签,但“现在点采取“我只会在未来使用流星,这使我更容易。谢谢 –
@FredJ。您是否在当前模板或父模板或“Meteor.startup”中订阅了“用户”发布?您的出版物仅返回当前登录的用户。但我认为,您还想发布其他用户。 – Kishor