如何在Meteor + NodeJs应用程序中捕获未处理的exception

我们正在使用meteor+ NodeJS应用程序。 meteor应用程序用于客户端通信和Nodejs应用程序连接到数据库。 我们在meteor应用程序中给出了nodeJS应用程序引用。

当在nodejs应用程序中发生任何未处理的错误时,我们无法抓住它。

我们将meteor和nodejs应用程序作为一个包进行部署。

从meteor我们使用Meteor.wrapAsync(node.method1)调用nodejs方法。 我们可以捕捉meteor中的exception,直到从节点方法callback。 在callback之后,如果在nodejs方法中发生任何exception,我们将无法处理它。

感谢您的重播

由于这里没有提供任何代码,我将假设您有以下情况:

  • 您有一个Meteor应用程序调用托pipe在不同节点服务器中的服务。
  • 节点服务与Meteor应用共享相同的数据库。
  • 客户只能与Meteor应用程序进行交互。

Meteor使用自己的embedded式节点服务器,所以对其他节点应用程序的服务调用实际上是两个不同节点服务器之间的通信,这意味着它们有自己的调用堆栈,因此它们不能处理彼此的exception。

在这两者之间沟通错误的唯一方法是处理节点应用程序中的exception,并将错误代码发送到Meteor应用程序。 它们可以是HTTP代码,例如,如果您使用ajax,或者您自己的错误代码。