(少なくとも)Node.js v0.10.33
(安定)/ v0.11.14
(不安定)からおそらく(少なくとも)v7.7.4
(この回答の最新の更新時点での最新バージョン)までの多くの有用な回答の編集。RoryO'Kaneの助けを借りて帽子をかぶった。
tl; dr
質問の例に必要な出力を取得するには、次を使用しますconsole.dir()
。
console.dir(myObject, { depth: null }); // `depth: null` ensures unlimited recursion
どうしてutil.inspect()
?これはすでに診断出力の中心にあるためです。console.log()
またconsole.dir()
、Node.jsREPLはutil.inspect()
暗黙的にを使用します。通常、直接電話する必要はありません。require('util')
util.inspect()
詳細は以下をご覧ください。
- REPL: 構文の色付けを使用して式の戻り値を暗黙的に出力
util.inspect()
します;
つまり、変数の名前を入力してEnterキーを押すだけで、その値の検査済みバージョンが出力されます。例えば:
o = { one: 1, two: 'deux', foo: function(){} } // The REPL echoes the object definition with syntax coloring.
util.inspect()
オブジェクトと配列の表現を自動的にきれいに印刷しますが、必要な場合にのみ複数行の出力を生成します。
きれいに印刷される動作はcompact
、オプションのoptions
引数のプロパティによって制御できます。無条件にfalse
複数行の出力を使用しますが、きれいな印刷を完全に無効にします。条件付きの複数行の動作を制御するために、数値(デフォルトは)に設定することもできます。ドキュメントを参照してください。true
3
デフォルトでは、出力が
ファイルに送信されるか端末に送信されるかに関係なく、 Shreyのおかげで出力は約60文字でラップされます。実際には、改行はプロパティの境界でのみ発生するため、多くの場合、行が短くなりますが、長くなることもあります(たとえば、プロパティ値が長い場合)。
v6.3.0以降では、このbreakLength
オプションを使用して60文字の制限を上書きできます。に設定するとInfinity
、すべてが1行に出力されます。
きれいな印刷をより細かく制御したい場合はJSON.stringify()
、3番目の引数を使用することを検討してください。ただし、次の点に注意してください。
- グローバルコンテキストなど、循環参照を持つオブジェクトでは失敗します。
module
- メソッド(関数)は設計上含まれていません。
- 非表示の(列挙できない)プロパティの表示を選択することはできません。
- 呼び出し例:
JSON.stringify({ one: 1, two: 'deux', three: true}, undefined, 2); // creates a pretty-printed multiline JSON representation indented with 2 spaces
util.inspect()
オプションオブジェクト(2番目の引数):
フォーマットされた文字列の特定の側面を変更するオプションのオプションオブジェクトを渡すことができます。サポートされているプロパティの一部は次のとおりです。
現在の完全なリストについては、最新のNode.jsドキュメントを参照してください。
showHidden
- の場合、オブジェクトの列挙不可能なプロパティ[または
true
を使用したときに表示されないように指定されたプロパティ]も表示されます。デフォルトは。for keys in obj
Object.keys(obj)
false
depth
- オブジェクトのフォーマット中に再帰する回数を検査するように指示します。これは、大きく複雑なオブジェクトを検査する場合に役立ちます。デフォルトは2です。無期限に繰り返すには、を渡し
null
ます。
colors
- trueの場合、出力はANSIカラーコードでスタイル設定されます。デフォルトは
false
。色はカスタマイズ可能です[…–リンクを参照]。
customInspect
- の場合
false
、検査対象のオブジェクトに定義されているカスタムinspect()
関数は呼び出されません。デフォルトはtrue
。
util.format()
format-stringプレースホルダー(最初の引数)
サポートされているプレースホルダーの一部は次のとおりです。
現在の完全なリストについては、最新のNode.jsドキュメントを参照してください。
%s
- 弦。
%d
–数値(整数と浮動小数点の両方)。
%j
–JSON。
%%
–単一パーセント記号('%')。これは引数を消費しません。