После обновления до meteor 1.8.0.2
с версии 1.6.x я заметил, что любой вызов метода, который приводит к ошибке, печатается на консоли сервера как:
Exception while invoking method 'login' [object Object]
Exception while invoking method 'customMethodByMe' [object Object]
Это происходит как при разработке на моем Mac, так и при развертывании в Galaxy.
Раньше была напечатана вся трассировка стека, но это ведение журнала объектов не помогло мне разобраться в реальной проблеме. Мое решение до сих пор заключалось в том, чтобы обернуть реализацию метода в оператор try catch, который регистрирует исходное исключение и сбрасывает его, чтобы клиент знал.
Meteor.methods({
'customMethodByMe'() {
try {
return customMethodByMeImpl();
} catch (e) {
console.log(e)
throw e;
}
}
});
В этом случае, так как ошибка в методе login
, который находится в пакете, я не могу обновить его, чтобы напечатать реальную проблему. На клиенте все, что я получаю при любой ошибке, - это то, что на сервере произошла ошибка 500, поэтому также нет основной причины.
{"isClientSafe":true,"error":500,"reason":"Internal server error","message":"Internal server error [500]","errorType":"Meteor.Error"}
Есть идеи, как временно решить эту проблему? Я искал обработчик ошибок на уровне сервера, но пока ничего не нашел.
спасибо