【发布时间】:2021-09-07 13:58:38
【问题描述】:
我有一个在 Node.js 上运行的基于 Express.js 的应用。
现在,我想用 pm2 来结束它。为此,我定义了 ecosystem.json:
{
"apps": [
{
"env": {
"NODE_ENV": "development",
"PORT": "3000"
},
"env_production": {
"NODE_ENV": "production"
},
"exec_mode": "cluster",
"instances": 0,
"name": "myapp",
"node_args": [
"--experimental-json-modules",
"--gc_interval=100",
"--max_old_space_size=512",
"--optimize_for_size"
],
"script": "./src/server/bin/www.mjs",
"watch": true
}
]
}
在 package.json 中,我指定了一个 scripts-section:
"scripts": {
"start": "pm2 start ecosystem.json"
},
在 IDE 中,我配置了 npm 脚本运行配置:
现在,当我点击时,pm2 会启动并显示正确的运行进程摘要:
但是,当我尝试在浏览器(127.0.0.1:3000 或 localhost:3000)中打开应用程序时,我收到 ERR_CONNECTION_REFUSED,无法访问此站点。
看起来,该应用不再侦听端口 3000。
如何访问在 pm2 中运行的应用程序?
附:基于Nodejs + expressjs - pm2 and forever don't work?,我检查过,我运行"script": "./src/server/bin/www.mjs",所以我假设,pm2 获得了bin/www.mjs 的正确路径。
【问题讨论】:
-
配置看起来不错。尝试将应用程序最终监听的端口输出到控制台,并通过“pm2日志”查看。