You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GoDaddy VPS部署Node.js应用时PM2反复报MODULE_NOT_FOUND错误

GoDaddy VPS部署Node.js应用PM2启动异常问题

问题现象

在GoDaddy的VPS服务器上部署Node.js应用,使用PM2启动后进程显示online状态,但几秒后再次查看状态变为errored;查看日志发现存在MODULE_NOT_FOUND错误及对应的requireStack。

已尝试的解决措施

  • 保持Node.js版本一致
  • 更新/升级服务器
  • 安装并更新Node模块
  • 更新PM2

相关命令行输出及日志

PM2启动与状态查询输出

[root@42 Backend]# pm2 start server.js
[PM2] Applying action restartProcessId on app [server](ids: [ 0 ])
[PM2] [server](0) ✓
[PM2] Process successfully started
┌────┬───────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name      │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├────┼───────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0  │ server    │ default     │ 1.0.0   │ fork    │ 235064   │ 0s     │ 30   │ online    │ 0%       │ 11.0mb   │ root     │ disabled │
└────┴───────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘
[root@42 Backend]# pm2 status
┌────┬───────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──────────┬──────────┐
│ id │ name      │ namespace   │ version │ mode    │ pid      │ uptime │ ↺    │ status    │ cpu      │ mem      │ user     │ watching │
├────┼───────────┼─────────────┼─────────┼─────────┼──────────┼────────┼──────┼───────────┼──────────┼──────────┼──────────┼──────────┤
│ 0  │ server    │ default     │ 1.0.0   │ fork    │ 0        │ 0      │ 45   │ errored   │ 0%       │ 0b       │ root     │ disabled │
└────┴───────────┴─────────────┴─────────┴─────────┴──────────┴────────┴──────┴───────────┴──────────┴──────────┴──────────┴──────────┘

PM2日志输出

[root@42 Backend]# pm2 logs
[TAILING] Tailing last 15 lines for [all] processes (change the value with --lines option)
/root/.pm2/pm2.log last 15 lines:
PM2        | 2024-06-28T09:25:33: PM2 log: App [server:0] online
PM2        | 2024-06-28T09:25:33: PM2 log: App [server:0] exited with code [1] via signal [SIGINT]
PM2        | 2024-06-28T09:25:33: PM2 log: App [server:0] starting in -fork mode-
PM2        | 2024-06-28T09:25:33: PM2 log: App [server:0] online
PM2        | 2024-06-28T09:25:33: PM2 log: App [server:0] exited with code [1] via signal [SIGINT]
PM2        | 2024-06-28T09:25:33: PM2 log: App [server:0] starting in -fork mode-
PM2        | 2024-06-28T09:25:33: PM2 log: App [server:0] online
PM2        | 2024-06-28T09:25:34: PM2 log: App [server:0] exited with code [1] via signal [SIGINT]
PM2        | 2024-06-28T09:25:34: PM2 log: App [server:0] starting in -fork mode-
PM2        | 2024-06-28T09:25:34: PM2 log: App [server:0] online
PM2        | 2024-06-28T09:25:34: PM2 log: App [server:0] exited with code [1] via signal [SIGINT]
PM2        | 2024-06-28T09:25:34: PM2 log: App [server:0] starting in -fork mode-
PM2        | 2024-06-28T09:25:34: PM2 log: App [server:0] online
PM2        | 2024-06-28T09:25:34: PM2 log: App [server:0] exited with code [1] via signal [SIGINT]
PM2        | 2024-06-28T09:25:34: PM2 log: Script /root/ProamWeb/Backend/server.js had too many unstable restarts (16). Stopped. "errored"

/root/.pm2/logs/server-out.log last 15 lines:
/root/.pm2/logs/server-error.log last 15 lines:
0|server   |     at Module._extensions..js (node:internal/modules/cjs/loader:1422:10)
0|server   |     at Module.load (node:internal/modules/cjs/loader:1203:32)
0|server   |     at Module._load (node:internal/modules/cjs/loader:1019:12)
0|server   |     at Module.require (node:internal/modules/cjs/loader:1231:19)
0|server   |     at Hook._require.Module.require (/usr/lib/node_modules/pm2/node_modules/require-in-the-middle/index.js:101:39) {
0|server   |   code: 'MODULE_NOT_FOUND',
0|server   |   requireStack: [
0|server   |     '/root/ProamWeb/Backend/Controllers/Auth.controller.js',
0|server   |     '/root/ProamWeb/Backend/Controllers/index.js',
0|server   |     '/root/ProamWeb/Backend/Routes/Auth.route.js',
0|server   |     '/root/ProamWeb/Backend/Routes/index.js',
0|server   |     '/root/ProamWeb/Backend/app.js',
0|server   |     '/root/ProamWeb/Backend/server.js'
0|server   |   ]
0|server   | }

解决方案

1. 定位缺失模块

从requireStack可知错误触发点在Auth.controller.js,先检查该文件中的所有require语句:

cat /root/ProamWeb/Backend/Controllers/Auth.controller.js | grep "require("

确认引用的第三方模块或本地文件是否存在。

2. 修复引用问题

  • 若为第三方模块缺失:进入项目根目录/root/ProamWeb/Backend/,执行npm install <缺失模块名>,确保安装到项目本地。
  • 若为本地文件路径错误:检查require的相对路径(.//../)是否正确,避免使用绝对路径导致环境不一致。

3. 清理PM2缓存并重启

pm2 delete server
pm2 flush
pm2 start server.js

4. 验证状态

等待几秒后执行pm2 status查看进程状态,或通过pm2 logs server确认是否还有错误日志。


内容的提问来源于stack exchange,提问作者High Rated Mughal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 19:44:52