gpt4 book ai didi

meteor - 从服务器方法中抛出 Meteor.Error 会导致脚本退出

转载 作者:行者123 更新时间:2023-12-04 05:50:45 26 4
gpt4 key购买 nike

我从服务器端方法抛出 Meteor.Error 异常。

throw new Meteor.Error( 500, 'There was an error processing your request' );

我的目标是让客户端 Meteor.call 接收此错误,它确实如此,但抛出也会导致节点进程退出。

error: Forever detected script exited with code: 8



在不杀死脚本的情况下,将错误从 Meteor.methods() 发送到 Meteor.call 的正确方法是什么?

最佳答案

如果您以某种方式从方法的纤维之外抛出方法,则可能会发生这种情况。例如

Meteor.methods({
test: function() {
setTimeout(function() {
throw new Meteor.Error( 500, 'There was an error processing your request' );
}, 0);
}
});

如果您使用的东西可以逃脱光纤,则在其中运行的方法可能会导致 Meteor 退出。

您只需要确保在光纤内部抛出错误即可。 (例如,在上面的示例中,您可以使用 Meteor.setTimeout 而不是 setTimeout

如果您使用 npm您应该使用的模块 Meteor.bindEnvironment 对于回调。或 Meteor.wrapAsync 以确保回调在同一光纤中运行。

一旦你这样做了,你的应用程序就不会崩溃,也不会导致永远重启它。

关于meteor - 从服务器方法中抛出 Meteor.Error 会导致脚本退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22282725/

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