對於Express.js而言,我是一個相當新的東西,其中一個讓我更加驚訝的事情是,比起其他服務器,比如Apache或IIS,Express.js服務器每次崩潰它會遇到未捕獲的異常或某個錯誤拒絕該網站並使其可供用戶訪問。一件可怕的事!防止Express.js崩潰
例如,我的應用程序由於數據庫表中的名稱更改而未定義變量而導致Javascript錯誤崩潰。
TypeError: Cannot call method 'replace' of undefined
這是不是這樣一個很好的例子,因爲我的網站移動到生產環境之前解決這個問題,但有時類似的錯誤可以採取哪些不應該引起服務器崩潰的一部分。
我希望看到一個錯誤頁面或只是在該特定頁面的錯誤,但關閉整個服務器這些事情聽起來很可怕。
Express error handlers似乎不足以達到此目的。
我一直在閱讀關於如何解決Node.js by using domains這種事情,但我沒有發現任何專門爲Express.js。
我發現的另一個選項,似乎並不是所有情況下都推薦的,它使用工具來永久運行一個進程,所以在崩潰之後,它會自行重啓。工具如Forever,Upstart或Monit。
你們在Express.js中如何處理這類問題?
我們部署了我們的OpenShift服務器以及他們使用節點監控器(https://www.npmjs.org/package/supervisor)崩潰後,以保持我們的服務器了。你可能想看看這個包。 – Ben 2014-11-05 11:59:08
@Ben聽起來像它的['nodemon'](https:// github。com/remy/nodemon),但它也會在服務器崩潰時重新啓動。 – Alvaro 2014-11-05 12:02:53