Nodejsのデバッグを有効にするにはどうすればよいですか? Nodejsプログラムをデバッグするにはどうすればよいですか?

青灯夜游
リリース: 2022-01-20 19:55:03
転載
5160 人が閲覧しました

nodejs プログラムをデバッグするにはどうすればよいですか?以下の記事でnodejsのデバッグ方法を紹介していますので、参考になれば幸いです。

Nodejsのデバッグを有効にするにはどうすればよいですか? Nodejsプログラムをデバッグするにはどうすればよいですか?

開発者にとって、アプリケーション開発の過程では、開発の利便性やバグの解決のために、プログラミング言語のデバッグ機能に頼る必要がよくあります。一般に、この作業を完了するには、強力な IDE のデバッグ機能を使用する必要があります。 nodejsも例外ではありません。

今日は、node プログラムのデバッグ方法を詳しく紹介します。

nodejs デバッグを有効にする

以前話した koa プログラムを覚えていますか?この記事では、nodejs のデバッグを開始するための例として、単純な koa サーバー プログラムを取り上げます。

まず、単純な koa サービス app.js を見てみましょう:

const Koa = require('koa');
const app = module.exports = new Koa();

app.use(async function(ctx) {
  ctx.body = 'Hello World';
});

if (!module.parent) app.listen(3000);
ログイン後にコピー

上記のプログラムはポート 3000 を開き、http サービスを確立します。リクエストが行われるたびに hello World が返されます。これは非常に簡単です。

上記のプログラムを実行するには、node app.js を実行する必要があります。これにより app.js が実行されますが、デバッグは有効になりません。

デバッグ方法は?

--inspect パラメータを追加する必要があります:

node --inspect app.js
ログイン後にコピー
ログイン後にコピー

上記のコードは、nodejs のデバッグ機能を有効にします。

出力を見てみましょう:

Debugger listening on ws://127.0.0.1:9229/88c23ae3-9081-41cd-98b0-d0f7ebceab5a
For help, see: https://nodejs.org/en/docs/inspector
ログイン後にコピー

結果から 2 つのことがわかります。1 つ目は、デバッガーがリッスンするポートです。デフォルトでは、127.0.0.1 のポート 9229 が開きます。そして区別するために一意の UUID を割り当てます。

2 番目のことは、nodejs によって使用されるデバッガーが Inspector であることを伝えることです。

Inspector は、nodejs 8 の後に導入されました。nodejs 7 より前の場合は、従来のデバッガーが使用されます。

デバッグセキュリティ

デバッガーがnodejs実行環境に接続されている場合、悪意のある攻撃者がいる場合、悪意のある攻撃者はnodejs環境で任意のコードを実行する可能性があります。これは私たちのプログラムに大きなセキュリティリスクをもたらします。

したがって、デバッグの安全性に注意を払う必要があります。一般に、リモート デバッグはお勧めしません。

デフォルトでは、--inspect は 127.0.0.1 にバインドされており、ローカル プログラムのみがアクセスを許可されます。また、ローカルで実行されているプログラムには、そのプログラムをデバッグする権限があります。

デバッグ プログラムを外部プログラムに公開したい場合は、マシンの外部 IP アドレスまたは 0.0.0.0 (任意のアドレスを示し、制限なし) を指定して、リモート マシンがリモート プログラムを実行できるようにします。デバッグ済み。

安全なリモート デバッグを実行したい場合はどうすればよいでしょうか?

まず、ローカル デバッグを有効にする必要があります:

node --inspect app.js
ログイン後にコピー
ログイン後にコピー

次に、ローカル 9221 ポートをリモート サーバーの 9229 ポートにマップする SSH トンネルを構築できます:

ssh -L 9221:localhost:9229 user@remote.example.com
ログイン後にコピー

このようにして、ローカル 9221 ポートに接続してリモート デバッグを実行できます。

nodejs のデバッグに WebStorm を使用する

JetBrains が作成した WebStorm は、nodejs を開発するための強力なツールであると言えます。WebStorm には独自のデバッグ オプションがあります。 --inspect:

WebStorm をデバッグに使用することは、IDEA を Java プログラムのデバッグに使用することに似ているため、ここでは詳細には説明しません。

デバッグに Chrome devTools を使用する

デバッグに Chrome devTools を使用するための前提条件は、--inspect モードをオンにしていることです。

Chrome に chrome://inspect と入力します:

Chrome の検査インターフェイスが表示されます。ローカルで検査を有効にした Nodejs プログラムがすでにある場合は、 , その場合は、リモートターゲットで直接確認できます。

デバッグするターゲットを選択し、[検査] をクリックして Chrome devTools デバッグ ツールを開きます:

プログラムをプロファイリングしてデバッグできます。

ここではデバッグに焦点を当てているため、ソース列に移動して、デバッグするプログラムのソース コードを追加します。

ブレークポイント デバッグが開始されました。 ChromeでWeb側のjsをデバッグするのと同じです。

デバッグにnode-inspectを使用する

実際、nodejsには、cliデバッグツールであるnode-inspectと呼ばれる組み込みデバッグツールがあります。使い方を見てみましょう。

我々は直接使用します:

node inspect app.js

< Debugger listening on ws://127.0.0.1:9229/f1c64736-47a1-42c9-9e9e-f2665073d3eb
< For help, see: https://nodejs.org/en/docs/inspector
< Debugger attached.
Break on start in app.js:1
> 1 const Koa = require(&#39;koa&#39;);
  2 const app = module.exports = new Koa();
  3 
debug>
ログイン後にコピー

node Inspection は 2 つのことを行います。1 つ目は、node --inspect app.js を実行するサブルーチンを生成することです。2 つ目は、CLI デバッグを実行することです。プログラム内のウィンドウ。

この CLI デバッガーは、いくつかの非常に便利なコマンドを提供します:

1、Stepping

  • cont、c : 続行実行
  • next, n: 次のステップに進みます
  • step, s: ステップイン
  • out, o: ステップアウト
  • pause: 実行を一時停止しますコード

2、ブレークポイント

  • setBreakpoint(), sb(): 現在の行にブレークポイントを設定します
  • setBreakpoint(line), sb(line): 指定された行にブレークポイントを設定します
  • setBreakpoint ('fn()'), sb(…): 指定された関数にブレークポイントを設定します
  • setBreakpoint('script.js', 1), sb(…): 指定されたスクリプト ファイルに設定しますBreakpoint
  • clearBreakpoint('script.js', 1), cb(…): ファイルからブレークポイントをクリア

##3, Information

    backtrace, bt: 現在の実行フレームのバックトレース情報を出力します
  • list(5): ソース コードの前後 5 行をリストします
  • watch(expr):モニター式を追加します
  • unwatch(expr): ウォッチ式を削除します
  • watchers: すべてのウォッチャーをリストします
  • repl: repl 式を開きます
  • exec expr : 式を実行
上記のコマンドを使用すると、CLI でより複雑なデバッグ アクティビティを実行できます。

その他のデバッグ クライアント

上で説明したものに加えて、vscode、Visual Studio、Eclipse IDE などを使用して、nodejs を実行することもできます。デバッグは行われません。ここで詳しく紹介します。

興味のある友達は自分で探索できます。

ノード関連の知識の詳細については、

nodejs チュートリアル を参照してください。 !

以上がNodejsのデバッグを有効にするにはどうすればよいですか? Nodejsプログラムをデバッグするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート