(少なくとも)Node.js v0.10.33
(stable)/ v0.11.14
(unstable)から(少なくとも)v7.7.4
(この回答の最新アップデート時点での最新バージョン)までの多くの有用な回答のコンパイル。彼の助けのためのロリー・オケインへの帽子の先端。
tl; dr
質問の例に必要な出力を取得するには、次を使用しますconsole.dir()
。
console.dir(myObject, { depth: null }); // `depth: null` ensures unlimited recursion
なんでutil.inspect()
?すでに診断出力の中心にあるため:console.log()
とconsole.dir()
同様のNode.js REPL を使用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()
オブジェクトと配列表現を自動的にプリティプリントしますが、必要な場合にのみ複数行の出力を生成します。
pretty-printingの動作は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
- オブジェクトのフォーマット中に何回再帰するかをinspectに指示します。これは、大きくて複雑なオブジェクトの検査に役立ちます。デフォルトは2
null
です。無限に再帰させるには、を渡します。
colors
- trueの場合、出力はANSIカラーコードでスタイル設定されます。デフォルトは
false
です。色はカスタマイズ可能です[…–リンクを参照]。
customInspect
- の場合
false
、inspect()
検査対象のオブジェクトに定義されているカスタム関数は呼び出されません。デフォルトはtrue
です。
util.format()
format-stringプレースホルダー(第1引数)
いくつかサポートされているプレースホルダーのは次のとおりです。
最新の完全なリストについては、最新のNode.jsドキュメントをご覧ください。
%s
- ストリング。
%d
–数値(整数と浮動小数点の両方)。
%j
– JSON。
%%
–単一のパーセント記号( '%')。これは引数を消費しません。