第 3 章 调试基于 Node.js 的应用


本节介绍调试基于 Node.js 的应用程序,并在本地和远程部署中使用调试日志。

3.1. 远程调试

要远程调试应用,您需要以调试模式启动它,并为它附加一个调试器。

3.1.1. 在本地启动应用程序并附加原生调试器

原生调试器允许您使用内置的调试客户端调试基于 Node.js 的应用。

先决条件

  • 要调试的应用程序。

流程

  1. 在启用了 debugger 的情况下启动应用。

    原生调试器会自动附加,并提供调试提示。

    启用调试器的示例应用

    $ node inspect app.js
    < Debugger listening on ws://127.0.0.1:9229/12345678-aaaa-bbbb-cccc-0123456789ab
    < For help see https://nodejs.org/en/docs/inspector
    < Debugger attached.
    ...
    debug>
    Copy to Clipboard Toggle word wrap

    如果您的应用程序具有不同的入口点,则需要更改命令来指定该入口点:

    $ node inspect path/to/entrypoint
    Copy to Clipboard Toggle word wrap

    例如,当使用 express 生成器 创建应用程序时,入口点默认设置为 ./bin/www

  2. 使用 debugger 提示符执行 调试命令

3.1.2. 在本地启动应用程序并附加 V8 检查器

V8 检查器允许您使用其他工具(如 Chrome DevTools )调试基于 Node.js 的应用程序,其使用 Chrome 调试协议

先决条件

流程

  1. 启动启用了 V8 检查器集成的应用程序

    $ node --inspect app.js
    Copy to Clipboard Toggle word wrap

    如果您的应用程序具有不同的入口点,则需要更改命令来指定该入口点:

    $ node --inspect path/to/entrypoint
    Copy to Clipboard Toggle word wrap

    例如,当使用 express 生成器 创建应用程序时,入口点默认设置为 ./bin/www

  2. 附加 V8 检查器并执行调试命令。

    例如,如果使用 Google Chrome:

    1. 导航到 chrome://inspect
    2. 从以下远程目标 中选择 您的应用程序
    3. 现在,您可以看到应用程序的源,并可执行调试操作。

3.1.3. 以调试模式在 OpenShift 上启动应用程序

要在 OpenShift 远程上调试基于 Node.js 的应用程序,您必须将容器内的 NODE_ENV 环境变量设置为 开发和 配置端口转发,以便您可以从远程调试器连接到应用程序。

先决条件

  • 在 OpenShift 上运行的应用。
  • 安装了 oc 二进制文件。
  • 在目标 OpenShift 环境中执行 oc port-forward 命令的功能。

流程

  1. 使用 oc 命令,列出可用的部署配置:

    $ oc get dc
    Copy to Clipboard Toggle word wrap
  2. 将应用程序的部署配置中的 NODE_ENV 环境变量设置为 development 以启用调试。例如:

    $ oc set env dc/MY_APP_NAME NODE_ENV=development
    Copy to Clipboard Toggle word wrap
  3. 如果应用程序没有设置为在配置更改时自动重新部署,请重新部署它。例如:

    $ oc rollout latest dc/MY_APP_NAME
    Copy to Clipboard Toggle word wrap
  4. 配置从本地机器到应用程序 pod 的端口转发:

    1. 列出当前运行的 pod 并查找包含应用程序的 pod:

      $ oc get pod
      NAME                            READY     STATUS      RESTARTS   AGE
      MY_APP_NAME-3-1xrsp          0/1       Running     0          6s
      ...
      Copy to Clipboard Toggle word wrap
    2. 配置端口转发:

      $ oc port-forward MY_APP_NAME-3-1xrsp $LOCAL_PORT_NUMBER:5858
      Copy to Clipboard Toggle word wrap

      在这里,$LOCAL_PORT_NUMBER 是您选择的本地机器上未使用的端口号。记住远程调试器配置的这个数字。

  5. 附加 V8 检查器并执行调试命令。

    例如,如果使用 Google Chrome:

    1. 导航到 chrome://inspect
    2. 单击 配置
    3. 添加 127.0.0.1:$LOCAL_PORT_NUMBER.
    4. Done
    5. 从以下远程目标 中选择 您的应用程序
    6. 现在,您可以看到应用程序的源,并可执行调试操作。
  6. 完成调试后,取消设置应用程序 pod 中的 NODE_ENV 环境变量。例如:

    $ oc set env dc/MY_APP_NAME NODE_ENV-
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat