Meteor Can';从事件捕获方法中抛出的流星错误

Meteor Can';从事件捕获方法中抛出的流星错误,meteor,Meteor,我有一个方法,它会抛出一个错误,因此我可以在事件中捕获它并将其显示给用户,如下所示: Meteor.methods({ addPlayer: function(nickname) { if (nickname == "") { throw new Meteor.Error('empty-nickname', 'You must choose a nickname'); } else { Player.insert({

我有一个方法,它会抛出一个错误,因此我可以在事件中捕获它并将其显示给用户,如下所示:

  Meteor.methods({
    addPlayer: function(nickname) {
      if (nickname == "") {
        throw new Meteor.Error('empty-nickname', 'You must choose a nickname');
      } else {
        Player.insert({
          nickname: nickname,
        });
      }
    },
  })
就我而言

'submit form': function (e) {
  e.preventDefault();

  var nickname = $('input').val();

  Meteor.call('addPlayer', nickname, function(error, result) {
    if (error) {
      console.log(typeof error);
      console.log(error);
    }
  });
}
然而,meteor在模拟调用“addPlayer”的效果时仍然抛出一个异常,错误变量不是一个错误对象,而是一个与控制台日志消息相同的字符串,因此我在控制台中得到两个错误,而不是一个错误对象

在try/catch中包装method.call无效

我错过了什么

--编辑 以下是结果的打印屏幕:


完整分辨率的图像链接:

仅在服务器上抛出错误。如果(!this.isSimulation){}

Meteor.methods({
  addPlayer: function(nickname) {
    if (nickname == "") {
      if(!this.isSimulation) {
        throw new Meteor.Error('empty-nickname', 'You must choose a nickname');
      }
    } else {
      Player.insert({
        nickname: nickname,
      });
    }
  },
})

代码对我来说似乎是正确的。“模拟调用“addPlayer”的效果”是什么意思?您对它的调用是否与代码中显示的有所不同?您在哪里定义该方法?在服务器和客户端(存根)上,还是仅在服务器上?(“如果存根抛出异常,它将被记录到控制台。”)抛出新流星。错误(..)看起来是错误的。它应该包含错误号。抛出错误没有帮助。正在为服务器和客户端定义该方法,并在表单提交事件中由客户端调用。仅在服务器上引发错误。如果(!this.isSimulation){}