gpt4 book ai didi

javascript - 当 check() 抛出 Match.Error 时如何向客户端抛出错误消息?

转载 作者:行者123 更新时间:2023-12-02 16:34:44 24 4
gpt4 key购买 nike

我正在发布 Products 集合中的一些文档,并使用 check()确保传递给它的选项是有效的。如果客户端传递无效选项,我希望在控制台上显示自定义的错误消息。

我正在使用audit-argument-checks包以确保我检查了所有方法和发布函数。

在客户端上,我传递了一个无效选项(reverse 应该是一个 bool 值),但在客户端控制台和服务器日志上都没有观察到错误。

// 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 时,如何向客户端抛出错误消息?

最佳答案

我看起来您只是未能通过客户端上的回调检查错误。请参阅onError callback of Meteor.subscribe() .

我已完成您的订阅,如下in a Meteorpad然后它会按照预期发送给客户端进行处理。

Meteor.subscribe('products',{sort: 'created', reverse: 'asdasd'},
{onError: function( err ) {throw err;}}
);

关于javascript - 当 check() 抛出 Match.Error 时如何向客户端抛出错误消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28007495/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com