2015-04-17 11 views
0

У меня есть следующий фрагмент кода в моей server/fixtures.js файле:Accounts.createUser не сохраняет профиль

var userId = Accounts.createUser({ 
    username: "tester", 
    email: "[email protected]", 
    password: "foobar", 
    profile: { name: "Max" } 
}); 
var user = Meteor.users.findOne({_id: userId}); 
console.log(user.profile.name); 

Теперь, когда я бегу meteor он регистрирует undefined. Что я делаю не так?

ответ

2

Я довольно уверен, что я имел Accounts.onCreateUser обратного вызова, определенный где-то, что несет ответственность за это. Виноват!

-1

Я думаю, вам нужно использовать Meteors Publications & Подписки. Проверьте это link для получения дополнительной информации.

Пример:

if (Meteor.isServer){ 
    Meteor.publish('userdata', function() { 
    if(!this.userId) return null; 
    return Meteor.users.find(this.userId); 
    }); 
} 

if (Meteor.isClient){ 
    Meteor.subscribe('userdata'); 
    console.log(Meteor.user()); 
} 
0

Итак, проблема в том, что console.log недоступен на сервере (где этот файл работает в соответствии с соглашениями о каталогах Meteor.). Если вы хотите войти на консоль сервера, вы можете использовать Meteor._debug(), который работает так же, как console.log. Вы также можете рассмотреть возможность упаковки вашего кода в блок Meteor.startup(function() {});, чтобы он запускался, как только сервер закручивался.

+1

console.log доступен на сервере. Вы можете увидеть результат в окне, на котором запущен метеоритный сервер. Я сам ответил на этот вопрос, я полагаю, что у меня был определенный обратный вызов Accounts.onCreateUser. – esBeee