Node.js の console.log() でオブジェクト全体を取得する 3 つの方法

2024-04-02

Node.js の console.log() でオブジェクト全体を取得する方法

この問題を解決するには、以下の方法があります。

util.inspect() モジュールは、オブジェクトをより詳細な形式で出力するのに役立ちます。

const obj = {
  name: "John Doe",
  age: 30,
  address: {
    city: "Tokyo",
    country: "Japan",
  },
};

console.log(util.inspect(obj, { showHidden: true, depth: null }));

上記コードは、オブジェクトのすべてのプロパティと値を、階層的に表示します。

util.inspect() のオプションは以下の通りです。

  • showHidden: 隠しプロパティを表示するかどうか
  • depth: オブジェクトの階層構造の深さ

JSON.stringify() は、オブジェクトを JSON 形式に変換します。

const obj = {
  name: "John Doe",
  age: 30,
  address: {
    city: "Tokyo",
    country: "Japan",
  },
};

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

上記コードは、オブジェクトを JSON 形式で出力します。

  • replacer: オブジェクトのプロパティを置き換える関数
  • space: 出力を整形する際の空白文字数

自作の出力関数を使う

上記の 2 つの方法以外にも、オブジェクトの内容を自由に表示するために、自作の出力関数を使うこともできます。

function printObject(obj) {
  for (const key in obj) {
    console.log(`${key}: ${obj[key]}`);
  }
}

const obj = {
  name: "John Doe",
  age: 30,
  address: {
    city: "Tokyo",
    country: "Japan",
  },
};

printObject(obj);

Node.js の console.log() でオブジェクト全体を取得するには、util.inspect()JSON.stringify()、または自作の出力関数を使うことができます。それぞれの方法にはメリットとデメリットがあるので、状況に合わせて使い分けることが重要です。




// 1. util.inspect() を使う

const obj = {
  name: "John Doe",
  age: 30,
  address: {
    city: "Tokyo",
    country: "Japan",
  },
};

console.log(util.inspect(obj, { showHidden: true, depth: null }));

// 2. JSON.stringify() を使う

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

// 3. 自作の出力関数を使う

function printObject(obj) {
  for (const key in obj) {
    console.log(`${key}: ${obj[key]}`);
  }
}

printObject(obj);

このコードを実行すると、以下の出力が得られます。

{
  name: 'John Doe',
  age: 30,
  address: {
    city: 'Tokyo',
    country: 'Japan'
  }
}

{
  "name": "John Doe",
  "age": 30,
  "address": {
    "city": "Tokyo",
    "country": "Japan"
  }
}

name: John Doe
age: 30
address: { city: Tokyo, country: Japan }



オブジェクト全体を取得するその他の方法

console.dir() は、オブジェクトをインタラクティブなツリー形式で表示します。

const obj = {
  name: "John Doe",
  age: 30,
  address: {
    city: "Tokyo",
    country: "Japan",
  },
};

console.dir(obj);

デバッガーを使う

Node.js のデバッガーを使うと、オブジェクトの内容を詳細に調べることができます。

  • Chrome DevTools
  • Visual Studio Code
  • WebStorm

などのデバッガーを使うことができます。

ライブラリを使う

debugwinston などのライブラリを使うと、オブジェクトをより詳細な形式で出力することができます。

const debug = require('debug')('myapp');

const obj = {
  name: "John Doe",
  age: 30,
  address: {
    city: "Tokyo",
    country: "Japan",
  },
};

debug(obj);

上記コードは、debug ライブラリを使ってオブジェクトを出力します。


javascript node.js debugging


MouseEvent.composedPath()でイベント発生元の親要素を取得

JavaScript、jQuery、イベントの知識を用いて、子要素によって発生するマウスアウトイベントを無効にする方法について解説します。目次マウスアウトイベントとは子要素によるマウスアウトイベントの問題解決策 3.1 JavaScriptによるイベントリスナーの削除 3.2 jQueryによるイベントの無効化...


初心者でも安心!jQueryでドロップダウンリストの選択値を変更する3つのコツ

JavaScriptの基本的な知識jQueryライブラリの理解上記のサンプルコードでは、以下の方法でドロップダウンリストの選択値を変更しています。特定の値を選択する$("#my-select").val("2")このコードは、my-select IDを持つドロップダウンリストの選択値を "2" に設定します。...


【徹底比較】jQuery SVG vs. Raphael:JavaScriptでSVGを扱う最強ライブラリは?

jQuery SVGとRaphaelは、JavaScriptでSVG画像を操作するためのライブラリです。それぞれ異なる特徴を持ち、用途によって使い分けることが重要です。jQuery SVGは、jQueryのプラグインとして提供されるライブラリです。jQueryの操作方法をそのままSVGに適用できるため、jQueryユーザーにとって使いやすく、学習コストが低い点が特徴です。...


JavaScript、jQuery、Keyboardを使って、ユーザー入力が完了したタイミングで処理を実行する方法

通常、テキスト入力欄でキーが押されるたびに keyup イベントが発生し、それに応じて JavaScript 関数が実行されます。しかし、ユーザーがまだ入力を続けている場合、キー入力ごとに処理が実行されるのは望ましくありません。例えば、入力内容に基づいて検索結果を提示するような場合、ユーザーがまだ入力を終えていない段階で検索を実行してしまうと、不必要な処理が発生してしまうことになります。...


Node.js vs ASP.NET Core 比較:ベンチマークツールとコード分析で検証

このブログ記事では、Node. jsとASP. NET Coreのパフォーマンステストに関する記事「Unexpected outcome of node. js vs ASP. NET Core performance test」を取り上げ、プログラミングの観点から詳しく解説します。...