【发布时间】:2015-01-18 05:40:42
【问题描述】:
我正在发布Products 集合中的一些文档,并使用check() 确保传递给它的选项有效。如果客户端传入无效选项,我希望在控制台上显示自定义错误消息。
我正在使用audit-argument-checks 包来确保我检查了所有方法和发布功能。
在客户端,我传入了一个无效选项(reverse 应该是一个布尔值),但在客户端控制台和服务器日志上都没有观察到错误。
// Server
Meteor.publish('products', function (opts) {
try {
check(opts, {
sort: Match.Optional(String),
reverse: Match.Optional(Boolean),
start: Match.Optional(Number),
limit: Match.Optional(Number),
userId: Match.Optional(String)
});
} catch (err) {
this.error(new Meteor.Error('invalid-opts', "Please check your options are valid")); // Throws back an error saying invalid options
}
// Some more code
});
// Client
Template.home.helpers({
productListings: function () {
Meteor.subscribe('products', {sort: 'created', reverse: 'asdasd'});
return Products.find({});
}
});
我尝试使用Match.test() 代替check(),但这不满足audit-argument-checks 包,我想用它来确保我不会错过任何检查。
当check() 抛出Match.Error 时,如何向客户端抛出错误消息?
【问题讨论】:
标签: javascript exception error-handling exception-handling meteor