Node.js の console.log() でオブジェクト全体を取得する 3 つの方法
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
などのデバッガーを使うことができます。
ライブラリを使う
debug
や winston
などのライブラリを使うと、オブジェクトをより詳細な形式で出力することができます。
const debug = require('debug')('myapp');
const obj = {
name: "John Doe",
age: 30,
address: {
city: "Tokyo",
country: "Japan",
},
};
debug(obj);
上記コードは、debug
ライブラリを使ってオブジェクトを出力します。
javascript node.js debugging