私はユーザーアカウントを管理するためにaccounts-passwordパッケージを使用しています。私はAccounts.createUser()
機能を使ってアカウントを作成する2つの方法を試しました。Accounts.createUserがMongoDBでユーザーを作成しないのはなぜですか?
第一の方法:クライアントからAccounts.createUser()
を呼び出す
register.js:
Template.register.events({
"submit form"(event){
event.preventDefault();
const email = event.target.email.value;
const password = event.target.password.value;
Accounts.createUser({
email: email,
password: password
});
}
});
第二の方法:は、サーバー方法からAccounts.createUser()
を呼び出して、そのメソッドを呼び出すクライアントから。 Meteor: Accounts.createUser() doesn't create user
register.js:
Template.register.events({
"submit form"(event){
event.preventDefault();
const email = event.target.email.value;
const password = event.target.password.value;
Meteor.call('createNewUser', email, password);
}
});
methods.js:(サーバー上の)どちらの場合も
Meteor.methods({
'createNewUser'(email, password){
Accounts.createUser({
email: email,
password: password
});
}
});
、新しいコレクションを経た後にヒントを得ましたMongoDBで作成されます。古いコレクションも更新されていません。私の接続文字列は適切です。なぜこうなった?私は、サーバー上で次のコマンドを使用する場合ただし、文書が作成され
:
Accounts.users = new Mongo.Collection("profiles", {
_preventAutopublish: true, _driver: dbConn
});
Meteor.users = Accounts.users;
新しいコレクションは、これが動作するために作成する必要があり、なぜ私は知りません。 account-passwordパッケージはそれ自身でコレクションを作成するはずですか?
'Accounts.createUser'を呼び出す直前に' email'と 'password'の値をログに記録して、有効な値を持っていることを確認しましたか? – hwillson
はい、有効な値があります。私はそれを確認した。また、エントリは 'Accounts.users'をmongoコレクションに設定すると発生します。 – chaudharyp