복붙노트

[NODEJS] 어떻게 '[오브젝트]') Node.js를의 CONSOLE.LOG (에 전체 개체를 얻을보다는 할 수 있습니까?

NODEJS

어떻게 '[오브젝트]') Node.js를의 CONSOLE.LOG (에 전체 개체를 얻을보다는 할 수 있습니까?

해결법


  1. 1.당신은) (util.inspect 사용해야합니다 :

    당신은) (util.inspect 사용해야합니다 :

    const util = require('util')
    
    console.log(util.inspect(myObject, {showHidden: false, depth: null}))
    
    // alternative shortcut
    console.log(util.inspect(myObject, false, null, true /* enable colors */))
    

    출력

    { a: 'a',  b: { c: 'c', d: { e: 'e', f: { g: 'g', h: { i: 'i' } } } } }
    

    () 문서를 util.inspect 참조하십시오.


  2. 2.이 작업은 JSON.stringify를 사용하고,뿐만 아니라 아마도 쉽게 구문을 기억하는 일부 좋은 들여 쓰기를 얻을 수 있습니다.

    이 작업은 JSON.stringify를 사용하고,뿐만 아니라 아마도 쉽게 구문을 기억하는 일부 좋은 들여 쓰기를 얻을 수 있습니다.

    console.log(JSON.stringify(myObject, null, 4));
    
    {
        "a": "a",
        "b": {
            "c": "c",
            "d": {
                "e": "e",
                "f": {
                    "g": "g",
                    "h": {
                        "i": "i"
                    }
                }
            }
        }
    }
    

    당신이 원하는 것을 조정할 수 있도록 세 번째 인수는 들여 쓰기 수준을 설정합니다.

    필요한 경우 여기에 더 많은 세부 사항 :

    https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify


  3. 3.v7.7.4 (적어도) Node.js를 v0.10.33 (안정적) / v0.11.14 (불안정) 아마 통해 (적어도)에서 많은 유용한 답변의 컴파일 (이 답변의 최신 업데이트로 버전 현재) . 그의 도움 로리 O'Kane에 모자의 팁.

    v7.7.4 (적어도) Node.js를 v0.10.33 (안정적) / v0.11.14 (불안정) 아마 통해 (적어도)에서 많은 유용한 답변의 컴파일 (이 답변의 최신 업데이트로 버전 현재) . 그의 도움 로리 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 () :이 진단 출력의 마음에 이미 때문입니다. 그것은 ( 'UTIL')와 직접 통화 util.inspect ()을 요구하는 일반적 필요는 없습니다.

    자세한 사항은 아래.

    util.inspect ()는 자동 프리티 지문 객체와 배열 표현하지만, 필요한 경우에만 여러 출력을 생성한다.

    더 예쁜 인쇄를 제어하려면, 제 3의 인수를 JSON.stringify ()를 사용하는 것을 고려하지만, 다음 사항에 유의하십시오

    util.inspect () 옵션 개체 (2 인자) :

    옵션 옵션 객체가 포맷 된 문자열의 변경합니다 특정 측면 것을 전달 될 수있다; 지원되는 속성 중 일부는 다음과 같습니다

    현재, 전체 목록의 최신 Node.js를 문서를 참조하십시오.

    util.format () 형식 문자열의 자리 (1 인자)

    지원되는 자리 중 일부는 다음과 같습니다

    현재, 전체 목록의 최신 Node.js를 문서를 참조하십시오.


  4. 4.또 다른 간단한 방법은 JSON으로 변환하는 것입니다

    또 다른 간단한 방법은 JSON으로 변환하는 것입니다

    console.log('connection : %j', myObject);
    

  5. 5.이 시도:

    이 시도:

    console.dir(myObject,{depth:null})
    

  6. 6.Node.js를 6.4.0 이후,이 우아 util.inspect.defaultOptions으로 해결 될 수있다 :

    Node.js를 6.4.0 이후,이 우아 util.inspect.defaultOptions으로 해결 될 수있다 :

    require("util").inspect.defaultOptions.depth = null;
    console.log(myObject);
    

  7. 7.아마도 console.dir 당신이 필요합니다.

    아마도 console.dir 당신이 필요합니다.

    http://nodejs.org/api/console.html#console_console_dir_obj

    당신이 더 많은 제어가 필요한 경우 옵션 util을 사용합니다.


  8. 8.당신은 또한 할 수있다

    당신은 또한 할 수있다

    console.log(JSON.stringify(myObject, null, 3));
    

  9. 9.개체를 검사하는 좋은 방법은 노드를위한 크롬 DevTools로와 노드 --inspect 옵션을 사용하는 것입니다.

    개체를 검사하는 좋은 방법은 노드를위한 크롬 DevTools로와 노드 --inspect 옵션을 사용하는 것입니다.

    node.exe --inspect www.js
    

    열기 크롬 : 노드에 대한 // 크롬에 / # 장치를 검사하고 열기를 클릭 전용 DevTools로

    이제 모든 기록 된 목적은 크롬에서 실행되는 일반 JS 같은 관리자에서 사용할 수 있습니다.

    관리자를 다시 할 필요가 없습니다, 그것은 노드 시작하거나 다시 시작하는 즉시 자동으로 노드에 연결합니다. 노드에 대한 두 --inspect 및 크롬 DevTools로는 노드와 크롬의 이전 버전에서 사용하지 못할 수 있습니다.


  10. 10.이러한 용도에 모두 적용 할 수 있습니다 :

    이러한 용도에 모두 적용 할 수 있습니다 :

    // more compact, and colour can be applied (better for process managers logging)
    console.dir(queryArgs, { depth: null, colors: true });
    
    // get a clear list of actual values
    console.log(JSON.stringify(queryArgs, undefined, 2));
    

  11. 11.나는이 당신을 위해 유용 할 수 있다고 생각.

    나는이 당신을 위해 유용 할 수 있다고 생각.

    CONST 인 myObject = { "A": "A", "비":{ "C": "C", "디":{ "E": "E", "에프":{ "g": "g", "H": { "I": "I" } } } } }; CONSOLE.LOG (JSON.stringify (myObject에, NULL, '\ t'));

    이 답변에서 언급 한 바와 같이 :


  12. 12.당신은 단순히 CONSOLE.LOG 메시지 객체의 표현을 무시합니다 개체에 대한 검사 () 메소드를 추가 할 수 있습니다

    당신은 단순히 CONSOLE.LOG 메시지 객체의 표현을 무시합니다 개체에 대한 검사 () 메소드를 추가 할 수 있습니다

    예를 들면 :

    var myObject = {
       "a":"a",
       "b":{
          "c":"c",
          "d":{
             "e":"e",
             "f":{
                "g":"g",
                "h":{
                   "i":"i"
                }
             }
          }
       }
    };
    myObject.inspect = function(){ return JSON.stringify( this, null, ' ' ); }
    

    모두 CONSOLE.LOG 노드 쉘에서 필요에 따라 다음 개체가 표시됩니다


  13. 13.스크립트를 실행할 때 간단한 트릭은 환경 변수로 DEBUG_DEPTH = NULL을 추가 할 디버그 모듈을 것

    스크립트를 실행할 때 간단한 트릭은 환경 변수로 DEBUG_DEPTH = NULL을 추가 할 디버그 모듈을 것

    전의.

    DEBUG = * DEBUG_DEPTH = NULL 노드하는 index.js

    당신이 코드에서

    const debug = require('debug');
    debug("%O", myObject);
    

  14. 14.노드 REPL은 내장 된 객체가 표시되는 방식을 재정의에 대한 솔루션 여기를 참조있다.

    노드 REPL은 내장 된 객체가 표시되는 방식을 재정의에 대한 솔루션 여기를 참조있다.


  15. 15.가장 쉬운 옵션 :

    가장 쉬운 옵션 :

    CONSOLE.LOG ( '% O'인 myObject);


  16. 16.

    let myVar = {a: {b: {c: 1}}};
    console.log(JSON.stringify( myVar, null, 4 ))
    

    데이터 객체의 깊은 검사를 위해 중대한. 이 방법은 중첩 배열과 배열 중첩 된 객체에서 작동합니다.


  17. 17.당신이 배열의 숨겨진 항목을 표시 할 수있는 방법을 찾고 있다면, 당신은 maxArrayLength를 전달하는 데있어 : 무한대를

    당신이 배열의 숨겨진 항목을 표시 할 수있는 방법을 찾고 있다면, 당신은 maxArrayLength를 전달하는 데있어 : 무한대를

    console.log(util.inspect(value, { maxArrayLength: Infinity }));
    
  18. from https://stackoverflow.com/questions/10729276/how-can-i-get-the-full-object-in-node-jss-console-log-rather-than-object by cc-by-sa and MIT license