2017-06-02 85 views
1

我們使用的是Meteor + NodeJS應用程序。 Meteor應用程序用於客戶端和Nodejs應用程序的通信以連接到數據庫。我們在meteor應用程序中給出了nodeJS應用程序引用。如何在Meteor + NodeJs應用程序中捕獲未處理的異常

當nodejs應用程序發生任何未處理的錯誤時,我們無法捕捉到它。

我們將meteor和nodejs應用程序部署爲一個包。

從流星我們使用Meteor.wrapAsync(node.method1)調用nodejs方法。 我們能夠捕捉流星中的異常,直到從節點方法回調。在回調之後,如果在nodejs方法中發生任何異常,我們將無法處理它。

感謝您的重播

回答

1

由於沒有這裏提出的任何代碼,我會假設你有以下情形:

  • 您有一個調用服務流星應用程序託管在不同的節點服務器中。
  • 節點服務與Meteor應用程序共享相同的數據庫。
  • 客戶端只與Meteor應用進行交互。

流星是使用其自己的嵌入式節點服務器,所以服務調用到其他節點的應用程序實際上是兩個不同節點的服務器之間的通信,這意味着它們有自己的調用堆棧,因此它們不能處理每個其他的例外。

如果在節點應用程序中處理異常並將錯誤代碼發送到Meteor應用程序,那麼在這兩者之間傳遞錯誤的唯一方法就是如何處理。它們可以是HTTP代碼,例如,如果您使用ajax,或者您自己的錯誤代碼。

+0

1.節點應用程序託管在同一臺服務器上,並在流星應用程序中提供節點應用程序引用。 2.是的,節點服務與Meteor應用程序共享相同的數據庫。 3.是的,客戶只能與Meteor應用程序進行交互。 – Abhijit

相關問題