Node.js + PM2:进程守护与异常崩溃自动重启


发布日期 : 2023-07-30 02:42:52 UTC

访问量: 10 次浏览

在本文中,我们将学习当发生未捕获的异常时,如何重新启动 Node.js 应用程序。为此,我们将使用pm2模块。

方法

让我们一步一步看看方法:

  • 步骤1:安装pm2 模块并使用它启动服务器。
  • 步骤2:当发生未捕获的异常时,执行 process.exit() 命令停止服务器。
  • 步骤3:然后,pm2模块将自动重新启动服务器。process.exit() 停止服务器,pm2强制启动。通过这种方式,服务器将重新启动。

实现

下面是上述方法的逐步实现。

步骤1:初始化NPM

在终端中创建和定位您的项目文件夹,并输入以下命令

npm init -y

它初始化我们的节点应用程序并创建一个 package.json 文件。

步骤2:安装依赖项

将您的根项目目录定位到终端,并输入以下命令

npm install express pm2

将express和pm2作为依赖项安装到您的项目中

步骤3:创建产品列表

让我们创建一个产品数组,并将其设置为常数产品。

const products = [];

步骤4:为主页和产品页创建路由

让我们创建两个路由,以便用户可以访问主页和产品页。

app.get('/', (req, res) => {
   res.send('Hello Geeks!');
});

app.get('/products', (req, res) => {
   if (products.length === 0) {
       res.send('No products found!');
       process.exit();
   } else {
       res.json(products);
   }
});

在产品路由中,我们使用 process.exit() 方法来停止服务器。

完成的代码

const express = require('express'); 
const app = express(); 
const products = []; 
  
app.get('/', (req, res) => { 
    res.send('Hello Geeks!'); 
}); 
  
app.get('/products', (req, res) => { 
    if (products.length === 0) { 
        res.send('No products found!'); 
        process.exit(); 
    } else { 
        res.json(products); 
    } 
}); 
  
  
app.listen(3000, ()=>{ 
    console.log('listening on port 3000'); 
});

运行应用程序的步骤

在终端内输入以下命令来运行您的脚本 ‘app.js’ 使用 pm2

pm2 start app.js

输出

如何在未捕获的异常发生时重新启动Node.js应用程序