Я пишу приложение, использующее Метеор. В этом приложении я хочу реализовать проверку данных на стороне сервера с помощью Accounts.onCreateUser. Проходят некоторые данные, которые могут быть проверены только на стороне сервера.Как проверить данные в onCreateUser без потери данных формы?
На стороне клиента я называю:
Template.register.events({
'submit form': function (e) {
e.preventDefault();
var attributes = {
username: $("#inputUsername").val(),
password: $("#inputPassword").val(),
confirmation: $("inputConfirmation").val(),
email: $("#inputEmail").val(),
...
};
Accounts.createUser(attributes, function(err){
if (err) {
throwError(err);
} else {
}
});
}
});
А на стороне сервера:
Accounts.onCreateUser(function(options, user) {
if(!verifyData(options))
throw new Meteor.Error(403, "Wrong input");
return user;
});
После проверки на стороне сервера не удается, все формы данные теряются. Каков наилучший способ хранения данных?
В чем причина внедрения проверки на стороне сервера? Если вы не сделаете ничего, что невозможно на клиенте, я бы настоятельно рекомендовал просто проверить на стороне клиента. Могли бы вы, возможно, еще подробнее рассказать о том, что вы хотите делать с данными, как только проверка не пройдет? – JKaan
Примером может быть captcha, который должен быть проверен сервером или данными, которые должны быть проверены в базе данных. Когда проверка не проходит, значения полей ввода должны быть все еще там. – MarcS82
Что происходит внутри вашей функции throwError? – sbking