У меня есть метод Метеор:Meteor.call вызывает исключение даже с функцией обратного вызова
Meteor.methods({
orderStatusUpdate: function(orderId, status, note) {
check(orderId, String);
var statusData = {
status: status,
}
if (note) {
statusData.statusNote = note;
}
check(statusData, SchemaCompiled.orderStatus);
Collections.orders.update({_id: orderId}, {$set: statusData});
}
});
с таможенной проверки на поле statusNote
:
custom: function(){
if (someCondition) {
return 'required';
}
return false;
}
Моя проблема заключается в том, что даже с помощью функции обратного вызова определяется :
Meteor.call('orderStatusUpdate', orderId, orderStatus, note, function (error, result) {
// doing something
}
Исключение регистрируется в консоли:
Exception while simulating the effect of invoking 'orderStatusUpdate' errorClass {message: "Match error: Note is required", path: "", sanitizedError: errorClass, errorType: "Match.Error", invalidKeys: Array[1]} Error: Match error: Note is required
Как я понимаю, исключение возникает, когда я звоню check(...)
.
Как я могу поймать это исключение, чтобы правильно показать его клиенту?
BTW, функция обратного вызова также вызывается с помощью набора переменных error
.
выглядит симпатично идеей stubException, но как я могу сказать autoForm, чтобы пометить поле с недопустимой ошибкой и показать ошибку в этом случае? – Kostanos
Я не уверен. AutoForm имеет форму типа метода, которая вызывает указанный вами метод, но я не использовал его. – MasterAM
ваше решение (3) удаляет исключение, и, как вы сказали, это не вызывает метод на сервере после ошибки. Но он также не показывает ошибку в autoForm, когда с исключениями появляется ошибка в форме. Любая подсказка? – Kostanos