Я получил точно такое же сообщение об ошибке, включая слово «еще». Мое полное сообщение об ошибке: Exception while invoking method Error: Accounts.createUser with callback not supported on the server yet.
Перевести это сообщение об ошибке, как
Hey, Developer, you big dummy, your method call doesn't handle both response and error via callbacks, yet. Please fix your code.
вопроса для меня было два раза. Как и вы, я не смог адекватно объяснить ошибку обратного вызова и ответ. Это означает, что если в цепочке вызовов есть ошибка где-то еще, эта ошибка НЕ будет передана вам, поэтому вы не знаете, что случилось. Сначала исправьте код обратного вызова.
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;
}
}
});
Надеемся, что это будет «исправить» сообщение, которое 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);
}
});
Удачи вам в этом. Информация здесь предлагается в случае, если кто-то получит ошибку «еще»!
Почему бы просто не называть 'Accounts.createUser' непосредственно на клиенте, чтобы иметь обратный вызов? Единственная причина, по которой я могу думать о том, чтобы применить это к методу, заключается в том, что пользователь не выполняет автоматический вход. Большой недостаток заключается в том, что вы передаете пароль пользователя на сервер. –
Я использую autoform для создания нового пользователя. Я не могу создать hook для этой формы. Это показывает, что ошибка крючков не определена. Итак, я создал метод метеоритов. – kishan
Я думаю, вы должны переформулировать свой вопрос, чтобы сосредоточиться на проблеме автоформ, поскольку это, по-видимому, актуальная проблема, которая должна быть решена. –