kis*_*han 4 javascript node.js meteor
我正在使用meteor js开发一个应用程序.我创建了一个用于创建用户的流星方法.它向我显示以下错误: -
尚未在服务器上支持回调的Accounts.createUser.
这是我的流星方法
如何在account.createUser中添加回调?
Meteor.startup(function () {
Meteor.methods({
postForm:function(doc){
var result = Accounts.createUser({
username: doc.username,
password: doc.password,
email: doc.emails,
profile: {
lastname: doc.lastname,
contact:doc.phoneNumber,
bdat:doc.bod,
address:doc.address
}
},function(){
console.log('hello');
});
}
});
});
Run Code Online (Sandbox Code Playgroud)
该错误消息中的"尚未"可能是作者的错误.根据文件:
在服务器上,[
Accounts.createUser]返回新创建的用户ID.
这意味着在服务器端,Accounts.createUser实质上是阻塞:它等待创建用户,然后返回其新生成的id.因此,在这种情况下,"回调"基本上是遵循您的createUser陈述的任何内容.您将获得一个值,即用户的_id,您可以使用该值来检索插入的用户Meteor.users.find().如果你想覆盖错误,你可以捕获抛出的异常.
但正如大卫韦尔登所说,你基本上可以Accounts.createUser()在客户端上使用,这需要回调.我想如果你想在该创建的"回调"中做一些特定于服务器的事情是有道理的,但是人们也可能会争辩说你可以为此做一个服务器方法调用.(虽然在这种情况下会调用服务器两次,一次用于创建,一次用于回调逻辑)
我收到了完全相同的错误消息,包括"尚未".我的完整错误消息:Exception while invoking method Error: Accounts.createUser with callback not supported on the server yet.将该错误消息翻译为
嘿,开发人员,你是大傻瓜,你的方法调用不会通过回调来处理响应和错误.请修复你的代码.
对我来说问题是双重的.和你一样,我没有充分考虑回调错误和响应.这意味着,如果调用链中的其他地方出现错误,该错误将不会传递给您,因此您不知道出了什么问题.首先修复回调代码.
Meteor.methods({
postForm:function(doc){
try {
var result = Accounts.createUser({
username: doc.username,
password: doc.password,
email: doc.emails,
profile: {
lastname: doc.lastname,
contact:doc.phoneNumber,
bdat:doc.bod,
address:doc.address
}
});
if(result){
// are you using roles?
// Roles.addUsersToRoles(result, doc.roles);
return result;
}
}
catch(err){
return err;
}
}
});
Run Code Online (Sandbox Code Playgroud)
希望这将"修复" callback not supported错误消息.那时你应该能够看到真正引起麻烦的是什么.在我的情况下,这是一个错误的Accounts.validateNewUser((user)例程,我从教程中复制并忘记更新以匹配我的数据.
哦,差点忘了......这是从客户端调用方法的示例代码.
Meteor.call('postForm', newUser, function(error, response) {
if (error) {
console.log('postForm: Error: ', error);
}
if (response) {
console.log('postForm: Response: ', response);
}
});
Run Code Online (Sandbox Code Playgroud)
祝你好运.这里提供的信息,以防任何人得到"尚未"的错误!
| 归档时间: |
|
| 查看次数: |
3741 次 |
| 最近记录: |