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


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

3.1. 远程调试

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

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

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

先决条件

  • 要调试的应用程序。

步骤

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

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

    启用 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. 使用调试器提示执行 调试命令

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

V8 检查器允许您使用 Chrome DevTools 等其他工具(如 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. 从以下 Remote Target 中选择您的应用程序。
    3. 现在,您可以看到应用程序的源,并可执行调试操作。

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

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

先决条件

  • 您的应用程序在 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. 从以下 Remote Target 中选择您的应用程序。
    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