我的流星站点上有一个SignUp/SignIn进程.我有一个表单来注册新用户和一个表单来登录用户.
我serverside
通过用户启动用户
Accounts.createUser({username: "myusername", password: "mypassword"});
Run Code Online (Sandbox Code Playgroud)
我可以通过我的登录表单登录到我的dummyusers client
与
Meteor.loginWithPassword(username, password)
Run Code Online (Sandbox Code Playgroud)
我不知道为什么但由于某种原因我无法在客户端创建新用户.如果我打电话
Accounts.createUser({username: username, password: password});
Run Code Online (Sandbox Code Playgroud)
它返回undefined
(野生动物园)
我检查了输入字符串(用户名,密码),即使是纯字符串也没有生成错误
Accounts.createUser({username: "test", password: "pass"});
Run Code Online (Sandbox Code Playgroud)
返回undefined
客户端控制台.
我通过以下方式发布和订阅了我的用户:
服务器
Meteor.publish('users', function () {
console.log("Server Log: publishing all users");
return Meteor.users.find();
});
Run Code Online (Sandbox Code Playgroud)
客户
Meteor.subscribe("users");
Run Code Online (Sandbox Code Playgroud)
我也可以count()
在客户端控制台上使用用户,但我无法使用,Accounts.createUser()
因此createUser()函数甚至无法在我的控制台中运行.
为什么我不能使用Accounts.createUser()
的client/console
?
Dav*_*don 16
Accounts.createUser是客户端上的异步函数,因为它需要查询服务器以确定它是否实际成功(用户名或电子邮件可能已在使用中).异步函数的返回值将始终为undefined
,因此结果是预期的.
如果您从一个空项目和一个空数据库开始,您可以这样做:
Accounts.createUser({username: 'dave', password: 'password'});
Run Code Online (Sandbox Code Playgroud)
将返回undefined
,但后续调用Meteor.userId()
应返回一个字符串.
为了确定呼叫是否成功,您需要提供回调:
Accounts.createUser({username: 'dave', password: 'password'}, function(err) {
if (err)
console.log(err);
else
console.log('success!');
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
8657 次 |
最近记录: |