(적어도) Node.js v0.10.33
(안정적) / v0.11.14
(안정적이지 않음) v7.7.4
( 적어도) (이 답변에 대한 최신 업데이트 시점의 현재 버전 )에서 많은 유용한 답변을 편집 했습니다 . 그의 도움 을 위해 Rory O'Kane 의 모자 팁 .
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
모든 것이 단일 라인으로 출력됩니다 .
예쁜 인쇄에 대해 더 많은 제어를 원한다면 JSON.stringify()
3rd argument와 함께 사용 하는 것을 고려 하지만 다음 사항에 유의하십시오.
- 전역 컨텍스트에서 와 같이 순환 참조 가있는 객체로는 실패 합니다
module
.
- 방법 (기능)은 의도적으로 포함되지 않습니다.
- 숨겨진 (열거 가능하지 않은) 속성을 표시하도록 선택할 수 없습니다.
- 호출 예 :
JSON.stringify({ one: 1, two: 'deux', three: true}, undefined, 2); // creates a pretty-printed multiline JSON representation indented with 2 spaces
util.inspect()
옵션 객체 (두 번째 인수) :
형식화 된 문자열의 특정 측면을 변경 하는 선택적 옵션 오브젝트가 전달 될 수 있습니다. 지원되는 속성 중 일부 는 다음과 같습니다.
현재 전체 목록 은 최신 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()
형식 문자열 자리 표시 자 (첫 번째 인수)
지원되는 자리 표시 자 중 일부 는 다음과 같습니다.
현재 전체 목록 은 최신 Node.js 문서 를 참조하십시오 .
%s
– 문자열.
%d
– 숫자 (정수 및 부동 수).
%j
– JSON.
%%
– 단일 퍼센트 부호 ( '%'). 이것은 인수를 소비하지 않습니다.