在我的服务器内部,我检查数据库中的一些数据,并在它无效时抛出错误。我喜欢它:
//SERVER CODE:
Meteor.methods({
send: function (prefix, number, content) {
Future = Npm.require('fibers/future');
var future = new Future();
//do some validation
myReference.doSomething({
number: number,
content: content
}, function(error) {
if(error) {
future.throw("Cannot send at this time.");
} else {
future.return("SUCCESS");
}
});
return future.wait();
}
});
在客户端中,我想收到消息"此时无法发送。"在future.throw("Cannot send at this time.");
内。希望我能在警报中显示它。我该怎么做?
目前,这就是我正在尝试的内容,并且我不断收到一些未定义的错误。
//CLIENT CODE
Meteor.call("send", prefix, number, content, function(err, result) {
if(err) {
console.log(err);
alert(err);
} else {
console.log("SUCCESSFULLY SENT. ", result);
}
});
这是我在尝试收到错误消息时遇到的错误:
errorClass: Internal server error [500]
{
error: 500,
reason: "Internal server error",
details: undefined, message: "Internal server error [500]",
errorType: "Meteor.Error"…}
details: undefined
error: 500
errorType: "Meteor.Error"
message: "Internal server error [500]"reason:
"Internal server error"stack: (...)get
stack: function () { [native code] }set stack:
function () { [native code] }__proto__: Middle
如何收到我将来抛出的错误消息?
答案 0 :(得分:0)
使用它:return future.throw(new Meteor.Error(400, 'ololo'))
future.throw期望一个Meteor.Error实例,其中包含错误消息本身以及另外的http响应代码。因此400
是Bad Request
响应代码,ololo
是错误消息。
return
在这里实际上并不是必需的,但我每次都这样做只是为了确保我在失败后不会调用任何代码。