デバッグアプリケーションノード


まずは例のファイルから始めましょう.テストを行うことができ、「test . js」というファイルを作成し、次のコードを挿入します.
let x = 5;
debugger;
console.log(x);
今、我々は“検査”キーワードでそれを実行することができます
node inspect test.js
デバッガは、コードの最初の行で停止します.小さな矢印は、あなたが今どこにいるかを表現し、あなたが自分自身を失った、タイプリスト(10)を見つけ、入力した場合は、コードのより良いビューを持っている行の数を増やすことができます10行を表示するにはヒットを見つける場合は、周りのいくつかのコードを見ることができます.

ここからタイプできます:
続行するには、これはデバッガを次の“デバッガ”キーワードで停止します.
  • N、次の行または次のデバッガのキーワードに移動します.
    変数nの宣言から移動するには、Nを入力します.
  • 変数値の検査


    変数xの値を知りたい場合は、execを入力して変数値を調べることができますので、exec xを入力し、Enter

    execを使用して任意のコードを実行して印刷できます.たとえば、X + 5の結果を知りたい場合は、exec x + 5で入力し、結果を見るためにEnterを押します

    デバッガでタイプするものは、コードを変更することはできません.この場合、結果はもちろん10になります.execコールを使用して、変数の値を使用して複雑なコードの実行を行います.バグを確認し、コードに対する解決策をテストするには、より具体的な例を参照してください.

    コード検査へのコード検査の使用


    "test 2 . js "という名前のファイルを作成し、次のコードを配置します
    let users = [
      {
        id: 1,
        name: 'John'
      },
      {
        id: 2,
        name: 'Mary'
      }
    ];
    
    const findUser = (users, userName) => {
      return users;
    } 
    
    それで、あなたはこの「FindUser」機能を書きたいと言います、しかし、あなたはそれをする方法を正確に知りません、あるいは、それはそれをする最も良い方法であるでしょう.
    ノード検査を使用してすぐにテストを行い、finduser関数を書き終えることができます.
    node inspect test2.js
    
    ここで、FindUser関数が呼び出されている場所を取得します.

    ここでは、必要なものを実装する最良の方法を見つけるために迅速に別の式をテストすることができます.あなたは“フィルタ”を使用するというアイデアを持っていたと言うが、どのようにそれを行うには、あなたがすぐにユーザー変数と一緒に再生することができますexecを使用して確認していないと解決策に到達すると、このようなものになります.
    exec users.filter(user => user.name == 'John')[0]
    
    そしてもちろん、リアルタイムで結果を確認することもできます.

    ファイル内のコードを書くだけでこれを行うという利点は、何かを書くときのフィードバックループをかなり減らし、結果を見ると、コードを書く時間が減るということです.だけでなく、より重要なことは、アプリケーションの正しい“状態”を持っているので、あなたの心の中でその瞬間にアプリの状態を維持する必要はありません、あなたは、問題を解決すると思うコードを書くことができますし、自分の結果を参照してください.

    REPL (読み込み、評価、印刷ループ)


    REPLは、execを常に書き込んでおくことなく、上記のようにしただけの簡単な方法です.REPLを入力してEnterキーを押すことでREPLを入力することができ、Ctrl + Cを押すことで終了することができます.

    ウォッチャー


    コードをデバッグする最後の便利な部分は、ウォッチャーを使用しており、ウォッチャーは、式の値をチェックするより便利な方法です.次のコードは、ユーザーのバランスを変更する単純な関数です.test 3というファイルを作成します.JSと次のコードを配置します.
    let users = [
      {
        id: 1,
        name: 'John',
        balance: 100
      },
      {
        id: 2,
        name: 'Mary',
        balance: 200
      }
    ];
    
    const changeBalance = (userId, amount) => {
      for(let user of users) {
        if(user.id === userId) {
          user.balance += amount;
          break;
        }
      }
    };
    
    changeBalance(1, 100);
    changeBalance(2, 100);
    changeBalance(2, -100);
    changeBalance(1, -200);
    
    このファイルを実行する前に
    node inspect test3.js
    
    コードは、最初の行で期待されるように停止すると、今、我々はユーザーのバランスを見てウォッチャーを作成することができます、私たちはどのように時間をかけてジョンのバランスの変化を見たいと言う.
    任意の式を「ウォッチ」機能に渡すことができます.私たちは、ジョンが配列の最初のユーザであることを知っています
    watch('users[0].balance')
    
    を入力してください.

    デバッガにある行を変更するには、コマンドを使用するたびに、デバッガの上に新しいアイテムが表示されます

    上記のイメージでは、行「0 :」が作成したウォッチャーを表すことがわかります.あなたはコードを通過するためにNを押し続けることができます、そして、デバッガが動くたびに、あなたはあなたがジョンのためにしたように、彼女のためにウォッチャーをつくることができる時間とともに「マルイ」バランス変化がどのように変化するかについて見たいならば、現在の値で再評価されます
    watch('users[1].balance')
    
    あなたがもう表情を見たくないならば、あなたはジョンのケースでunwatch(「ユーザー[0]. balance))で、表情を見ることができません.
    Chrome DevToolsを使ってデバッグすることもできますが、より遅く設定するのが難しく、実際の利点を追加しないので、推奨しません.
    良い一日を😄