node.js - PM2:无法访问应用程序(ERR_CONNECTION_REFUSED)

标签 node.js express pm2

我有一个在 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 脚本运行配置:

npm run

现在,当我单击时,pm2 将启动并显示正确的正在运行的进程摘要:

App [myapp] launched (4 instances)

但是,当我尝试在浏览器(127.0.0.1:3000localhost:3000)中打开应用程序时,我收到 ERR_CONNECTION_REFUSED >,无法访问此站点。

看起来,该应用程序不再监听端口 3000。
如何访问在 pm2 中运行的应用程序?

附注基于Nodejs + expressjs - pm2 and forever don't work? ,我已经检查过,我运行 "script": "./src/server/bin/www.mjs",所以我假设 pm2 获得了正确的路径bin/www.mjs

最佳答案

更详细地研究该案例后,我在控制台中收到 ERR_UNSUPPORTED_ESM_URL_SCHEME。问题的根源在于PM2一方。问题是目前 "exec_mode": "cluster" 不起作用,而 "exec_mode": "fork" 可以毫无问题地使用。

出于某种原因,这个 issue已解决并关闭,但事实上修复似乎尚未发布。

关于node.js - PM2:无法访问应用程序(ERR_CONNECTION_REFUSED),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68109551/

相关文章:

javascript - 尝试获取 socket.io 时出现错误 404

node.js - PM2环境变量缓存

node.js - Pm2 问题 - 从 Ecosystem.config.js 启动进程时找不到 fs.readfilesync 文件

node.js - pm2 无法 fork 包含原始集群代码的 nodejs

javascript - 'npm install bcrypt' 在 Ubuntu 17.04 64 位上失败

node.js - Node.js 如何选择随机端口?

node.js - 如何使用无服务器框架引用不在根文件夹中的函数?

node.js - 无法在使用带有 NodeJS 的 Handlebars 的 View 中查找 View "index"

javascript - 如何使用 Express 传输 mp3 文件

Node : Unexpected behavior for console. timeEnd() 中的 JavaScript