Как я могу отобразить список всех зарегистрированных пользователей с Meteor.JS
Я уже несколько дней пытаюсь получить список зарегистрированных пользователей в приложении Meteor chat. Я перепробовал много разных вещей. Мне удалось добавить флаг входа в объект профиля пользователя. Сторона сервера:
Accounts.onCreateUser(function(options, user) {
if(!options.profile){
options.profile = {}
}
options.profile.login = false;
if (options.profile)
user.profile = options.profile;
return user;
});
В консоли браузера я получаю следующее:
Meteor.user().profile
Object {login: false}
Так что, похоже, это работает.
Теперь я хочу перечислить, вошли ли пользователи в систему: Сторона клиента
Deps.autorun(function(){
if(Meteor.userId()){
Meteor.user().profile.login=true;
}
});
После проверки логин остается ложным при входе в систему.
Этот шаблон html дает мне список всех имен пользователей, но не флаг входа
{{#each allUsers}}
<p>{{username}}</p><p>{{profile.login}}</p>
{{/each}
Итак, мои проблемы: профиль.логин остается ложным, и я не могу отобразить профиль.вход, но имена пользователей отображаются.
Заранее благодарю вас. Приветствую Тебя, Джорис
1 ответ:
Чтобы изменить свойство users
profile.login
, вам нужно сделатьMeteor.users.update(..)
или вызвать метод сервера, который это делает. Просто изменить свойство объекта пользователя не получится.Вообще я бы рекомендовал не сохранять состояние пользователей в базе данных mondodb, а хранить его в коллекции в памяти.
Проще всего было бы просто использовать один из них пакеты:
Или изучите их исходный код, чтобы увидеть, как распространять статус пользователя.