NodeJS PM2:无法访问应用程序(ERR_CONNECTION_REFUSED)

ndh0cuux  于 2023-05-28  发布在  Node.js
关注(0)|答案(1)|浏览(242)

我在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:3000localhost:3000)中打开应用程序时,我得到ERR_CONNECTION_REFUSED,无法访问此网站。
看起来,应用程序不再侦听端口3000。
如何访问pm2中运行的应用?
P.S.基于Nodejs + expressjs - pm2 and forever don't work?,我已经检查过了,我运行了"script": "./src/server/bin/www.mjs",所以我假设,pm2得到了到bin/www.mjs的正确路径。

jdg4fx2g

jdg4fx2g1#

在更详细地研究了这个案例之后,我在控制台中得到了ERR_UNSUPPORTED_ESM_URL_SCHEME。问题的根源在PM2的一侧。问题是,目前"exec_mode": "cluster"不工作,而"exec_mode": "fork"可以使用没有任何问题。
由于某种原因,这个issue已经被关闭,而事实上,似乎修复尚未发布。

相关问题