第3章 Node.js ベースのアプリケーションのデバッグ


このセクションでは、Node.js ベースのアプリケーションのデバッグと、ローカルデプロイメントとリモートデプロイメントの両方でデバッグロギングを使用する方法を説明します。

3.1. リモートのデバッグ

アプリケーションをリモートでデバッグするには、デバッグモードで起動し、デバッガーを割り当てる必要があります。

3.1.1. アプリケーションのローカルでの起動およびネイティブデバッガーの割り当て

ネイティブデバッガーを使用すると、ビルトインデバッグクライアントを使用して Node.js ベースのアプリケーションをデバッグできます。

前提条件

  • デバッグするアプリケーション。

手順

  1. デバッガーを有効にしてアプリケーションを起動します。

    ネイティブデバッガーは自動的に割り当てられ、デバッグプロンプトを提供します。

    デバッガーが有効になっているサンプルアプリケーション

    $ 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

    アプリケーションに別のエントリーポイントがある場合は、コマンドを変更してそのエントリーポイントを指定する必要があります。

    $ node inspect path/to/entrypoint
    Copy to Clipboard

    たとえば、express generator を使用してアプリケーションを作成する場合、エントリーポイントはデフォルトで ./bin/www に設定されます。

  2. デバッガープロンプトを使用して デバッグコマンド を実行します。

3.1.2. アプリケーションをローカルに起動して V8 インスペクターをアタッチする

V8 インスペクターを使用すると、Chrome Debugging Protocol を使用する Chrome DevTools などの他のツールを使用して Node.js ベースのアプリケーションをデバッグできます。

前提条件

  • デバッグするアプリケーション。
  • Google Chrome ブラウザーで 提供されるような V8 インスペクターがインストールされている。

手順

  1. V8 インスペクターの統合を有効にして アプリケーションを起動します。

    $ node --inspect app.js
    Copy to Clipboard

    アプリケーションに別のエントリーポイントがある場合は、コマンドを変更してそのエントリーポイントを指定する必要があります。

    $ node --inspect path/to/entrypoint
    Copy to Clipboard

    たとえば、express generator を使用してアプリケーションを作成する場合、エントリーポイントはデフォルトで ./bin/www に設定されます。

  2. V8 インスペクターをアタッチし、デバッグコマンドを実行します。

    たとえば、Google Chrome を使用している場合は、以下のようになります。

    1. chrome://inspect に移動します。
    2. 以下の リモートターゲット からアプリケーションを選択します。
    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
  2. アプリケーションのデプロイメント設定の NODE_ENV 環境変数を development に設定して、デバッグを有効にします。以下に例を示します。

    $ oc set env dc/MY_APP_NAME NODE_ENV=development
    Copy to Clipboard
  3. 設定変更時に自動的に再デプロイするように設定されていない場合は、アプリケーションを再デプロイします。以下に例を示します。

    $ oc rollout latest dc/MY_APP_NAME
    Copy to Clipboard
  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
    2. ポート転送を設定します。

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

      ここで、$LOCAL_PORT_NUMBER はローカルマシンで選択した未使用のポート番号になります。リモートデバッガー設定のこの番号を覚えておいてください。

  5. V8 インスペクターをアタッチし、デバッグコマンドを実行します。

    たとえば、Google Chrome を使用している場合は、以下のようになります。

    1. chrome://inspect に移動します。
    2. Configure をクリックします。
    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
トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat