ノードにオブジェクトを記録する方法

Node.jsにオブジェクトを記録する

入力するとconsole.log()ブラウザで実行されるJavaScriptプログラムに、ブラウザコンソールに素敵なエントリを作成します。

矢印をクリックすると、ログが展開され、オブジェクトのプロパティを明確に確認できます。

ノードでも同じことが起こります。

Nodeプログラムを手動で実行すると、オブジェクトがシェルまたはログファイルに出力されるため、コンソールに何かをログに記録する場合、そのような贅沢はありません。オブジェクトの文字列表現を取得します。

これで、特定のレベルのネストまではすべて問題ありません。 2レベルのネストの後、ノードはあきらめて印刷します[Object]プレースホルダーとして:

const obj = {
  name: 'Flavio',
  age: 35,
  person1: {
    name: 'Tony',
    age: 50,
    person2: {
      name: 'Albert',
      age: 21,
      person3: {
        name: 'Peter',
        age: 23
      }
    }
  }
}
console.log(obj)

{ name: ‘Flavio’, age: 35, person1: { name: ‘Tony’, age: 50, person2: { name: ‘Albert’, age: 21, person3: [Object] } } }

オブジェクト全体をどのように印刷できますか?

きれいな印刷を維持しながら、そうするための最良の方法は、使用することです

console.log(JSON.stringify(obj, null, 2))

どこ2インデントに使用するスペースの数です。

別のオプションは使用することです

require('util').inspect.defaultOptions.depth = null
console.log(obj)

ただし、問題は、レベル2以降のネストされたオブジェクトがフラット化されることであり、これは複雑なオブジェクトで問題になる可能性があります。

私の無料ダウンロードNode.jsハンドブック


その他のノードチュートリアル: