Node.js コードをデバッグする 2 つの方法について話しましょう
Node コードをデバッグするにはどうすればよいですか?次の記事では、Node.js をデバッグするための 2 つの一般的な方法を紹介します。これは一定の参考価値があるため、お役に立てれば幸いです。
Node.js のデバッグについて心配して、console.log という煩わしい方法しか使用しないことがよくありますが、実際には、Node.js では次のこともできます。ブラウザのデバッグと同じくらい便利です。
この記事の環境:
mac Chrome 94.0.4606.81 node v12.12.0 vscode Version: 1.61.1
この記事の例
この記事の例では、以前に検討したタマネギ モデルを使用しています。ファイルは 1 つだけです。 index.js をルート ディレクトリに追加します。
、次のように:
const Koa = require('koa'); const app = new Koa(); console.log('test') // 中间件1 app.use((ctx, next) => { console.log(1); next(); console.log(2); }); // 中间件 2 app.use((ctx, next) => { console.log(3); next(); console.log(4); }); app.listen(9000, () => { console.log(`Server is starting`); });
V8 Inspector Protocol Chrome DevTools
v8 Inspector Protocol は、nodejs に新しく追加されたデバッグ プロトコルですv6.3 は、WebSocket を通じてクライアント/IDE と対話し、同時に Chrome/Chromium ブラウザに基づく Devtools がグラフィカル デバッグ インターフェイスを提供します。
プロジェクトのルート ディレクトリに入って実行します (ポート 8888 に注意してください。後で使用します):
node --inspect=8888 index.js
結果は次のとおりです:
結果はリンクです——ws://127.0.0.1:8888/5f5c59fc-d42b-4ab0-be15-6feb1a05ed2d
。このリンクは、Node.js と Chrome が以前通信していた WebSocket アドレスであり、WebSocket 通信を通じて、Node.js の結果を Chrome 上でリアルタイムに確認することができます。
Chrome のデバッグ インターフェイスに入る方法
最初の方法 (自分で試してみるのは無効です)
Openhttp://localhost: 8888 /json/list
、8888
は上記の --inspect
のパラメーターです。
[ { "description": "node.js instance", "devtoolsFrontendUrl": "chrome-devtools://devtools/bundled/js_app.html?experiments=true&v8only=true&ws=localhost:8888/5f5c59fc-d42b-4ab0-be15-6feb1a05ed2d", "devtoolsFrontendUrlCompat": "chrome-devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=localhost:8888/5f5c59fc-d42b-4ab0-be15-6feb1a05ed2d", "faviconUrl": "https://nodejs.org/static/images/favicons/favicon.ico", "id": "5f5c59fc-d42b-4ab0-be15-6feb1a05ed2d", "title": "index.js", "type": "node", "url": "file:///Users/gpingfeng/Documents/Personal/Test/test-onion/index.js", "webSocketDebuggerUrl": "ws://localhost:8888/5f5c59fc-d42b-4ab0-be15-6feb1a05ed2d" } ]
多くの情報には、devtoolsFrontendUrl
から直接アクセスできると記載されていますが、試してみましたが、うまくいきませんでした。 [私の環境に関連している可能性があります]
2 番目の方法
# 情報を確認したところ、devtools://devtools/bundled/inspector.html?experiments=true は修正されており、ws
パラメータは WebSocket アドレスに対応しています。 次のようなインターフェイスが表示されます。
Chrome ブラウザで HTTP リスニングが開きます。インターフェイス ページで開発ツールを開き、
node --inspect=8888 Index.js を実行すると、次のアイコンが表示されるので、それをクリックします。
スクリプトを表示するソース パネル、パフォーマンスを監視するプロファイル パネルなど、ブラウザと同じデバッグ ページが表示されます。
さらに、
にアクセスすると、ブラウザで現在監視されているすべての検査を確認できます。
Vscode のデバッグ
ブラウザに加えて、すべての主要な IDE は Node.js のデバッグをサポートしています。この記事では例として Vscode を取り上げます。
起動構成
デバッグ ページを開き、Node プロジェクトに起動構成を追加します:
Node.js
##これにより、プロジェクトのルート ディレクトリに対応するファイル .vscode/launch.json
Program はファイル エントリを指し、
${workspaceFolder} はルート ディレクトリを指します。
{ // Use IntelliSense to learn about possible attributes. // Hover to view descriptions of existing attributes. // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "type": "pwa-node", "request": "launch", "name": "Launch Program", "skipFiles": [ "<node_internals>/**" ], "program": "${workspaceFolder}/index.js" } ] }
F5 を押すか、次のボタンをクリックしてください:
結果:
あなたが表示され、左側に現在のスコープの値、コールスタック、その他の情報が表示され、右上では関数を徐々にデバッグしたり、再起動したりすることもでき、非常に強力です。
ノード プロセス アクションにアタッチ
ノード プロセスにアタッチ アクションを使用すると、実行中の Node.js プロセスを直接デバッグできます。
たとえば、最初にプロジェクトを開始しましょう——npm run start
。
次に、command Shift p
(ウィンドウ Ctrl Shift p
)、「Attach to Node Process Action」
と入力し、Enter キーを押して、実行中のアクションを選択します。プロセス もう一度 Enter キーを押すと、上記の構成に従ってコードをデバッグできます。
nodejs チュートリアル を参照してください。 !
以上がNode.js コードをデバッグする 2 つの方法について話しましょうの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









ノンブロッキングおよびイベント駆動に基づいて構築されたノード サービスには、メモリ消費量が少ないという利点があり、大量のネットワーク リクエストの処理に非常に適しています。大量のリクエストを前提として、「メモリ制御」に関する問題を考慮する必要があります。 1. V8 のガベージ コレクション メカニズムとメモリ制限 Js はガベージ コレクション マシンによって制御されます

この記事では、NodeJS V8 エンジンのメモリとガベージ コレクター (GC) について詳しく説明します。

ノード用の Docker イメージの選択は些細なことのように思えるかもしれませんが、イメージのサイズと潜在的な脆弱性は、CI/CD プロセスとセキュリティに大きな影響を与える可能性があります。では、最適な Node.js Docker イメージを選択するにはどうすればよいでしょうか?

ファイル モジュールは、ファイルの読み取り/書き込み/開く/閉じる/削除の追加など、基礎となるファイル操作をカプセル化したものです。ファイル モジュールの最大の特徴は、すべてのメソッドが **同期** と ** の 2 つのバージョンを提供することです。 asynchronous**、sync サフィックスが付いているメソッドはすべて同期メソッドであり、持たないメソッドはすべて異種メソッドです。

Node 19 が正式リリースされましたので、この記事では Node.js 19 の 6 つの主要な機能について詳しく説明します。

Node.js はどのように GC (ガベージ コレクション) を行うのでしょうか?次の記事で詳しく説明します。

イベント ループは Node.js の基本的な部分であり、メイン スレッドがブロックされていないことを確認することで非同期プログラミングが可能になります。イベント ループを理解することは、効率的なアプリケーションを構築するために重要です。次の記事では、Node のイベント ループについて詳しく説明します。お役に立てれば幸いです。

ノードが npm コマンドを使用できない理由は、環境変数が正しく設定されていないためです。解決策は次のとおりです: 1. 「システムのプロパティ」を開きます; 2. 「環境変数」->「システム変数」を見つけて、環境を編集します。変数; 3.nodejs フォルダーの場所を見つけます; 4.「OK」をクリックします。
