如何防止 Node.js 网络服务器停机

How to prevent downtime on Node.js web server

我有一个 Node.js Web 应用程序和一个 postgres 数据库托管在我本地网络的 raspberry pi 上。它们在工作日被本地网络上的其他设备频繁访问,任何系统停机都会导致操作延迟或失败。

这个问题有哪些可能的解决方案?我是否需要使用 Heroku 之类的东西来部署 Node.js Web 应用程序,或者是否有一种方法可以通过在多台不同的机器上托管 Node.js Web 应用程序来添加冗余,以允许应用程序保持 运行 发生碰撞时?

您可以为 node.js 使用一些进程管理器,例如 PM2. You can setup restart strategies for your nodejs server. When it crush PM2 will restart it. See this docs。它也可以 运行 你在集群模式下的 nodejs 应用程序 - 你可以有你的应用程序的单独实例,PM2 将在它们之间分发所有请求。
此外,如果您的 nodejs 进程因为发生某些错误而崩溃,请尝试以正确的方式处理此错误,而不是完成进程。必要时添加try catch,处理异步错误等..