2

看到很多关于远程 Node js 服务器调试的帖子,并尝试了很多他们的解决方案,但没有设法让我的配置正常工作

我在具有以下“Node.js 远程调试”配置的 Windows PC 上安装了 Intellij:主机:my-server.dev.com 端口:5858

节点服务器本身安装在 UBUNTU 上,并在其上定义了以下端口转发规则:socat TCP-LISTEN:5858,fork TCP:localhost:6000

并且服务器使用以下命令运行(集群:/usr/local/n/versions/node/0.10.44/bin/node --debug=6000 /opt/play/play-server/main.js)

Intellij 将会话显示为已连接但无法在断点处中断

4

1 回答 1

2

为解决这个问题做了几个步骤: 1. 启动脚本执行器以使用:“n use 0.10.44 --debug”
//(这是来自我的脚本)

forever \
      --pidFile $PIDFILE \
      -a \
      -l $LOGFILE \
      --minUptime $MIN_UPTIME \
      --spinSleepTime $SPIN_SLEEP_TIME \
      start -c "n use 0.10.44 --debug" $APPLICATION_PATH 2>&1 > /dev/null &
    RETVAL=$?
  1. 在远程集群上创建转发规则(此处为端口 6000) socat TCP-LISTEN:5858,fork TCP:localhost:6000
  2. 在你 fork 之前的节点服务器中:

    var debug = process.execArgv.indexOf('--debug') !== -1; if(debug) { //设置一个未使用的端口号。process.execArgv.push('--debug=' + (6000)); } var childProcess = cluster.fork();

这允许我使用我在问题中设置的相同 intellij 配置仅调试一个集群进程

于 2016-04-04T14:05:21.933 回答