我有流星方法: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(...)
時會引發異常。
我怎樣才能捕捉到這個例外,以正確地向客戶展示它?
順便說一句,回調函數也被稱爲error
變量集。
看起來不錯stubException的想法,但我如何告訴autoForm標記與無效錯誤的字段,並在這種情況下顯示錯誤? – Kostanos
我不確定。 AutoForm有一個'method'類型的表單調用你指定的方法,但我沒有使用它。 – MasterAM
你的解決方案(3)消除了異常,正如你所說的那樣,在錯誤發生後它不會調用服務器中的方法。但它也不會在autoForm中顯示錯誤,當出現異常時,錯誤將出現在窗體中。任何線索? – Kostanos