什么是 PM2?
PM2是一个带有负载均衡器的Node.js应用程序的生产流程管理器,具有0秒停机重载,日志记录等多项功能。在实际开发过程中,常常需要管理多个Node.js应用程序的多个版本,PM2就可以很好地解决这个问题。
在使用PM2进行Node.js应用程序管理时,需要注意以下几点:
1. 安装 PM2
$ npm install pm2 -g
2. 创建项目
在开始之前,需要先创建好项目。我们以一个简单的Express web应用程序为例,首先安装Express和Body-parser:
$ npm install express body-parser
接着,在项目根目录下新建index.js文件,输入以下代码:
-- -------------------- ---- ------- ----- ------- - ------------------- ----- ---------- - ----------------------- ----- --- - ---------- ------------------------------- --------- ----- ---- --------------------------- ------------ ----- ---- -- - --------------- --------- --- ---------------- -- -- - -------------------- --- --------- -- ---- ------- ---
如上代码所示,我们定义了一个Express应用程序,监听端口3000,响应客户端请求并返回字符串"Hello World!"。
3. 用 PM2 启动应用程序
现在,我们需要用PM2启动应用程序。在终端中进入项目根目录,并输入以下命令:
$ pm2 start index.js --name sample-app
此命令会启动一个名为"sample-app"的进程,并监视它。如果该进程崩溃,PM2会自动重启该进程。
4. 用 PM2 启动多个版本应用程序
接下来,我们需要启动多个版本的应用程序。假设我们需要启动版本号为"1.0.0"和"1.1.0"的应用程序,我们可以在项目根目录下分别新建version1.0.0文件夹和version1.1.0文件夹,将相应版本的应用程序代码放入其中。
然后,在终端中进入version1.0.0文件夹,并输入以下命令:
$ pm2 start index.js --name sample-app-1.0.0 -- --port 2000
此命令会启动一个名为"sample-app-1.0.0"的进程,并将端口号设置为2000。其中,"--port 2000"是传入的参数,可以通过req.params.port获取。
同样地,在终端中进入version1.1.0文件夹,并输入以下命令:
$ pm2 start index.js --name sample-app-1.1.0 -- --port 3000
此命令会启动一个名为"sample-app-1.1.0"的进程,并将端口号设置为3000。
5. 用 PM2 查看应用程序状态
使用PM2管理应用程序时,可以随时查看应用程序的状态。在终端中输入以下命令:
$ pm2 list
此命令会列出所有正在运行的进程和它们的状态,如下所示:
┌──────────┬────┬─────────┬───────┬───────────┬─────────┬────────┬──────┬───────────┬──────────┐ │ App name │ id │ version │ mode │ pid │ status │ restart│ uptime│ memory │ watching │ ├──────────┼────┼─────────┼───────┼───────────┼─────────┼────────┼──────┼───────────┼──────────┤ │ sample-app-1.0.0 │ 0 │ N/A │ fork │ 26551 │ online │ 0 │ 0s │ 33.836 MB │ disabled │ ├──────────┼────┼─────────┼───────┼───────────┼─────────┼────────┼──────┼───────────┼──────────┤ │ sample-app-1.1.0 │ 1 │ N/A │ fork │ 82217 │ online │ 0 │ 0s │ 33.906 MB │ disabled │ └──────────┴────┴─────────┴───────┴───────────┴─────────┴────────┴──────┴───────────┴──────────┘
6. 用 PM2 停止应用程序
如果需要停止应用程序,可以在终端中输入以下命令:
$ pm2 stop sample-app
其中,"sample-app"即应用程序的名称。此命令会停止名为"sample-app"的所有进程。
7. 用 PM2 重启应用程序
如果需要重启应用程序,可以在终端中输入以下命令:
$ pm2 restart sample-app
其中,"sample-app"即应用程序的名称。此命令会重启名为"sample-app"的所有进程。
总结
本文介绍了如何使用PM2管理Node.js应用程序的多个版本。通过PM2,可以很方便地启动和管理多个版本的应用程序,同时也可以查看应用程序的状态和管理运行中的应用程序。希望本文对初学者有所帮助。完整示例代码见https://github.com/wizzyfx/pm2-demo。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6485438448841e989442892b