2015-03-19 20 views
7

Meteor sitemde bir Oturum Açma/Oturum Açma İşlemim var. Yeni kullanıcılar ve giriş yapan kullanıcılara bir form kaydetmek için bir formum var.Accounts.createUser(), istemcide tanımlanmamış olarak döndürülüyor

Ben

Accounts.createUser({username: "myusername", password: "mypassword"}); 

aracılığıyla serverside kullanıcıları init ve ben ama nedense yapamam neden bilmiyorum

Meteor.loginWithPassword(username, password) 

ile client benim loginform aracılığıyla benim dummyusers içine giriş yapabilirsiniz istemcilerde yeni kullanıcılar oluşturun. Ben

Accounts.createUser({username: username, password: password}); 

çağırırsanız o undefined (safari)

Ben

Accounts.createUser({username: "test", password: "pass"}); 

döner

gibi undefined giriş dizelerini (kullanıcı adı, şifre) ve onun hatayı üreten bile saf dizeleri kontrol döndürür müşteri konsolu.

yayınladığım ve üzeri kullanıcılarımı abone:

Meteor.publish('users', function() { 
    console.log("Server Log: publishing all users"); 
    return Meteor.users.find(); 
}); 

Müşteri

Meteor.subscribe("users"); 

Ben de istemci konsolda count() kullanıcıları ama Accounts.createUser() cant'kullanma olabilir

Sunucusu böylece createUser() işlevi bile çalışmıyor konsolumda

client/console numaralı telefondan neden Accounts.createUser()'u kullanamıyorum?

+1

bana bir iyilik yap ({kullanıcı adı: kullanıcı adı, şifre: şifre}, fonksiyon (hata, sonuç) {if (hata) {console.log (error.reason}}); ' – Ethaan

+0

komik hata' Kayıtlar yasaklanmıştır. ui (meteorik) sorunu vardı.Olan hata ile hack için thx. – Dude

+0

Bunun için teşekkürler! – imarichardson

cevap

11

Accounts.createUser istemcideki eşzamansız bir işlevdir çünkü sunucunun gerçekten başarılı olup olmadığını (kullanıcı adı veya e-posta zaten kullanımda olabilir) sorgulaması gerekir. Eşzamansız bir fonksiyonun dönüş değeri her zaman undefined olacaktır, sonuç beklenir. Boş bir proje ve boş bir veritabanı ile başlarsanız

, bunu yapabilirsiniz: undefined dönecektir

Accounts.createUser({username: 'dave', password: 'password'}); 

Ancak Meteor.userId() bir sonraki çağrı bir dize dönmelidir.

, bir geri arama belirtmeniz gerekir Çağrı başarılı olmadığını belirlemek amacıyla

: hatalar `Accounts.createUser geldiğini bilmek için bu` geri arama function` kullanın

Accounts.createUser({username: 'dave', password: 'password'}, function(err) { 
    if (err) 
    console.log(err); 
    else 
    console.log('success!'); 
}); 
+0

Bir kullanıcı el ile oluştururken geri arama yapmak için nasıl bir örnek arıyordu. – imarichardson

İlgili konular