? console.log() Outputs:

const myObject = {
   "a":"a",
   "b":{
      "c":"c",
      "d":{
         "e":"e",
         "f":{
            "g":"g",
            "h":{
               "i":"i"
            }
         }
      }
   }
};    
console.log(myObject);

Но я также хочу увидеть содержимое свойства

{ a: 'a', b: { c: 'c', d: { e: 'e', f: [Object] } } }

Outputs f Глядя на вывод

Вам нужно использовать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 */))

docs

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

, поэтому ваш код будет работать только после загрузки окна, когда все ресурсы имеют был загружен. В этот момент jQuery (util.inspect() Вы можете использовать Глядя на вывод

Третий аргумент устанавливает уровень отступа, так что вы можете настроить его по своему усмотрению , JSON.stringify и имеет несколько хороших отступов, а также, возможно, более легкий для запоминания синтаксис.

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

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

Компиляция множества полезных ответов от (как минимум) Node.js

Более подробно здесь, если необходимо:

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

(стабильный) / v0.10.33 (нестабильный) предположительно через (как минимум) v0.11.14 (версия, текущая на момент последнего обновления до этот ответ). v7.7.4 лежит в основе результатов диагностики:

TL ; DR

util.inspect(), так как REPL Node.js использует console.log() и console.dir() неявно util.inspect(), поэтому обычно необходимо не вызывать require('util') и напрямую util.inspect() Чтобы получить желаемый результат для примера в вопросе: Глядя на вывод

Подробности ниже.

console.dir(myObject, { depth: null }); // `depth: null` ensures unlimited recursion

(и его псевдоним


  • console.log() Если 1-й аргумент НЕ является строкой формата console.info()):

    • автоматически применяется к каждому аргументу: : util.inspect() Обратите внимание, что в этом случае вы
      • o = { one: 1, two: 'deux', foo: function(){} }; console.log(o, [1,2,3]) // -> '{ one: 1, two: 'deux', foo: [Function] } [ 1, 2, 3 ]'
      • не можете передавать опции , что подразумевает 2 Заметные ограничения: через util.inspect() Структурная
        • глубина ограничена для вывода (по умолчанию). cloudfeet статья об этом , вместо этого вы должны использовать
          • Так как вы не можете изменить это с помощью console.log() отпечатки с console.dir(): console.dir(myObject, { depth: null } неограниченной глубиной ;, см. ниже. Вы не можете включить синтаксическую раскраску.
        • Если 1-ый аргумент является строкой формата
    • (см. Ниже): использует для печати оставшихся аргументов на основе строки формата (см. Ниже) ; например: util.format() Примечание: { *} НЕТ заполнителя для представления стиля
      • o = { one: 1, two: 'deux', foo: function(){} }; console.log('o as JSON: %j', o) // -> 'o as JSON: {"one":1,"two":"deux"}'
      • .
        • JSON, сгенерированный с помощью Объекты util.inspect(), НЕ печатается красиво.
        • Принимает только %j 1
  • console.dir():

    • аргумент для проверки и всегда применяет — по существу, обертку для без параметров по умолчанию ;, например: util.inspect() узел. js v0.11.14 util.inspect(): необязательный второй аргумент задает параметры для
      • o = { one: 1, two: 'deux', foo: function(){} }; console.dir(o); // Effectively the same as console.log(o) in this case.
    • — см. ниже ;, например: REPL util.inspect() неявно печатает возвращаемое значение любого выражения с
      • console.dir({ one: 1, two: 'deux'}, { colors: true }); // node 0.11 : Prints object representation with syntax coloring.
  • REPL : автоматически (и неизменно) pretty-prints util.inspect() 2 — это число цифр, до которого мы хотим округлить это число. окраска синтаксиса ;
    то есть, просто набрав имя переменной и нажав Enter, вы увидите проверенную версию ее значения ;, например:
    • o = { one: 1, two: 'deux', foo: function(){} } // echoes the object definition with syntax coloring.

util.inspect() автоматически (и неизменно) pretty-prints 2. С поддержкой слияния и создания цепочек аргументов типа массива и Массив представления , но выдает multiline — если все помещается на одной строке, печатается только 1 строка. только при необходимости По умолчанию вывод обернут {{}} длиной около 60 символов

, но обратите внимание на следующее: JSON.stringify() Сбой с объектами, имеющими

  • в глобальном контексте. Методы Циркулярные ссылки , например, module (функции) по замыслу НЕ будут включены.
  • Вы не можете показывать скрытые (не перечисляемые) свойства. Пример вызова:
  • объект параметров
  • (2-й аргумент):
    • JSON.stringify({ one: 1, two: 'deux', three: true}, undefined, 2); // creates a pretty-printed multiline JSON representation indented with 2 spaces

util.inspect() http://nodejs.org/api/util.html # util_util_format_format Необязательный

Источник: тогда также будут показаны не перечисляемые свойства объекта [те, которые не отображаются при использовании

]. По умолчанию Есть ли способ проверить размер файла перед его загрузкой с помощью JavaScript? , который изменяет определенные аспекты отформатированного string:

  • showHidden
    • Вот мое решение. Как сказал Энди Э., отвечая на вопрос true указывает, сколько раз выполнить рекурсию при форматировании объекта. Это полезно для проверки больших сложных объектов. По умолчанию 2. Чтобы сделать его бесконечным, передайте for keys in obj или Object.keys(obj), если истина, тогда вывод будет оформлен с помощью цветовых кодов ANSI. По умолчанию false Глядя на вывод
  • depth
    • . Цвета настраиваются [… — см. Ссылку]. null Глядя на вывод
  • colors
    • , то пользовательские функции false, определенные для проверяемых объектов, не будут вызываться. По умолчанию используется
  • customInspect
    • Вот мое решение. Как сказал Энди Э., отвечая на вопрос false заполнитель строки формата inspect() (1-й аргумент) true Глядя на вывод

util.format() — Строка. — JSON.

Источник: тогда также будут показаны не перечисляемые свойства объекта [те, которые не отображаются при использовании

  • %s Еще один простой метод — преобразовать его в json
  • %d У меня та же проблема, через запрос xmlhttp приходит куча текста. Этот текст в формате HTML. Мне нужно выделить каждый случай.
  • %j Поскольку Node.js 6.4.0, это можно элегантно решить с помощью
  • % — один знак процента (‘%’). Это не потребляет аргумента.

. Вы также можете сделать

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

Попробуйте:

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

, возможно, util.inspect.defaultOptions:

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

— это все, что вам нужно.

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

http://nodejs.org/api/console.html # console_console_dir_obj console.dir Использует util.inspect в объекте obj и печатает полученную строку в стандартный вывод.

используйте опцию util, если вам нужно больше контроля.

Хороший способ проверки объектов — использовать параметр узла

— осмотреть

с Chrome DevTools для узла в chrome и нажать Открыть выделенное DevTools для узла Глядя на вывод

node.exe --inspect www.js

Open chrome://inspect/#devices сейчас каждый зарегистрированный объект доступен в инспекторе, как обычный JS, работающий в Chrome. Нет необходимости открывать инспектор, он подключается к узлу автоматически, как только узел запускается или перезапускается. Оба

— inspect

enter image description here

могут быть недоступны в более старых версиях Node и Chrome. Можно применить оба этих варианта: и Открыть выделенное DevTools для узла Вы можете просто добавить

сообщения

// more compact and colour can be applied (better for process managers logging)

console.dir(queryArgs, { depth: null, colors: true });

// clear list of actual values

console.log(JSON.stringify(queryArgs, undefined, 2));

, тогда ваш объект будет представлен в соответствии с требованиями как в console.log, так и в оболочке узла inspect() для вашего объекта, который переопределит представление объекта в выражении 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, ' ' ); }

. Простым трюком будет использование модуля

для добавления debug в качестве переменной среды при запуске сценария DEBUG_DEPTH=null Ex.

DEBUG = * DEBUG_DEPTH = нулевой узел index.js

В вашем коде

Узел REPL имеет встроенное решение для переопределения отображения объектов, см.

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

Модуль REPL внутренне использует говорится, что Глядя на вывод

делегирует вызов функции util.inspect(), при печати значений. Тем не менее, util.inspect объекта, если она есть. inspect() javascript — Как сделать, чтобы div переместился в верхнюю часть экрана после того, как он был прокручен? — Переполнение стека