console.log가 복잡한 객체에서 잘 재생되도록 하는 트릭
4123 단어 webdevtypescriptjavascriptnode
console.log
는 많은 상황에서 유용합니다(하지만 그것이 당신이 하는 일이라면 usually better ways to debug이 있습니다)브라우저
console.log
는 개체와 잘 작동하므로 필요한 만큼 드릴다운할 수 있습니다. 그러나 Node.js에서 중첩 객체의 출력을 보면 종종 다음과 같은 내용을 볼 수 있습니다.$ console.log({a: {b: { c: {d: {}}}}})
{ a: { b: { c: [Object] } } }
d: {}
가 [Object]
로 대체되었습니다. 하지만 왜?명령줄/터미널에는 드릴다운을 위한 멋진 UI가 없기 때문에 Node는 최대 3단계까지 인쇄를 시도합니다. 세 가지 수준을 넘어서면
[Object]
만 인쇄됩니다.이것은
depth
라는 노드 'util' 모듈의 변수에 의해 제어되며, 기본값은 2
입니다. 여기에서 직접 설정할 수 있습니다.require('util').inspect.defaultOptions.depth = 0; // top level only, e.g.:
// { a: [Object] }
require('util').inspect.defaultOptions.depth = null; // print everything, e.g.:
// {
// a: { b: { c: { d: {} } } }
// }
나중에 다시 물릴 수 있으므로 기본 변수를 변경하는 것은 좋은 생각이 아닙니다. 따라서 더 깨끗한 방법은 JSON 개체를
string
로 변환하고 기록하는 것입니다. 노드의 내장 JSON
클래스와 stringify
메서드를 사용할 수 있습니다.complexObject = {a: {b: { c: {d: {}}}}}
console.log(JSON.stringify(complexObject, null, 2))
// {
// "a": {
// "b": {
// "c": {
// "d": {}
// }
// }
// }
// }
JSON.stringify
, Number 2
의 세 번째 매개변수는 들여쓰기의 공백 수를 제어하고 두 번째 매개변수는 표시된 개체 및 속성을 필터링하거나 조정하는 데 사용할 수 있습니다.이제 그 깊은 물체에 무엇이 들어 있는지 실제로 볼 수 있습니다.
Reference
이 문제에 관하여(console.log가 복잡한 객체에서 잘 재생되도록 하는 트릭), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ehlo_250/the-trick-to-making-consolelog-play-nice-with-complex-objects-gma텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)