【发布时间】:2016-12-24 06:46:36
【问题描述】:
我正在使用accounts-password 包来管理我的用户帐户。我尝试了两种使用Accounts.createUser()函数创建帐户的方法。
第一种方式:从客户端调用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;
我不知道为什么必须创建一个新集合才能使其正常工作。 accounts-password 包不应该自己创建一个集合吗?
【问题讨论】:
-
您是否在调用
Accounts.createUser之前记录了您的email和password值,以确保它们具有有效值? -
是的。它们具有有效值。我证实了这一点。此外,当我将
Accounts.users设置为 mongo 集合时,也会出现这些条目。
标签: mongodb meteor meteor-accounts