gpt4 book ai didi

javascript - 防止 Express.js 崩溃

转载 作者:行者123 更新时间:2023-11-30 10:10:55 26 4
gpt4 key购买 nike

我对 Express.js 很陌生,与其他服务器(如 Apache 或 IIS)相比,一开始让我更惊讶的是 Express.js 服务器每次都会崩溃它遇到未捕获的异常或某些错误关闭该站点并使其可供用户访问。太可怕了!

例如,我的应用程序因 Javascript 错误而崩溃,因为数据库表中的名称更改导致 undefined variable 。

TypeError: Cannot call method 'replace' of undefined

这不是一个很好的例子,因为我应该在将网站移至生产环境之前解决它,但有时会出现类似的错误,这不应导致服务器崩溃。

我希望看到一个错误页面或只是那个特定页面中的一个错误,但关闭整个服务器这些事情听起来很可怕。

Express error handlers似乎不足以达到此目的。

我一直在阅读如何在 Node.js 中解决此类问题 by using domains ,但我没有发现任何专门针对 Express.js 的内容。

我发现的另一个选项似乎并不在所有情况下都被推荐,它是使用工具让进程永远运行,因此在崩溃后,它会自行重启。 Forever 等工具, UpstartMonit .

你们如何处理 Express.js 中的此类问题?

最佳答案

一般来说,Apache 和 nodejs 之间的主要区别是 Apache 为每个请求 fork 一个进程,而 nodejs 是单线程的,因此如果 Apache 中发生错误,那么处理该请求的进程将崩溃,而其他进程将继续工作,在nodejs 而不是唯一的线程关闭。

在我的项目中,我使用 monit 检查内存/cpu(如果 nodejs 占用了我的 vps 的大量资源,那么 monit 将重新启动 nodejs)和 daemontools 以确保 nodejs 始终启动并运行。

关于javascript - 防止 Express.js 崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26756237/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com