对于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