15

Как получить полный объект в console.log() Node.js, а не '[Object]'?

21

У меня есть такой объект:

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] } } }

Как я могу получить полный объект, включая содержимое свойства f?

5 ответ(ов)

0

Попробуйте следующее:

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

Этот код выводит myObject в консоль, позволяя вам просмотреть его структуру без ограничения глубины вложенности. Установка параметра depth в значение null позволяет увидеть все уровни объектов.

0

Другим простым способом является преобразование объекта в JSON. Вы можете использовать следующий код:

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

Используя %j, вы форматируете вывод в виде JSON-строки, что позволяет вам легко просмотреть содержимое объекта myObject в логах.

0

Оба этих варианта можно использовать в зависимости от ваших потребностей:

// более компактный вариант, поддерживает цвета (лучше подходит для логирования в менеджерах процессов)
console.dir(queryArgs, { depth: null, colors: true });

// позволяет получить четкий список фактических значений
console.log(JSON.stringify(queryArgs, undefined, 2));

Первый вариант (console.dir) более удобен для чтения при работе с большими объектами, так как позволяет использовать цвета и настраивать глубину отображаемых свойств. Второй вариант (console.log с JSON.stringify) полезен, когда нужно увидеть объект в структурированном виде с отступами, что облегчает понимание данный. Выбор между ними зависит от того, какая информация вам важнее в данный момент.

0

Возможно, вам достаточно использовать console.dir.

Согласно документации Node.js:

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

console.dir применяет util.inspect к объекту и выводит полученную строку в стандартный поток вывода (stdout).

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

0

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

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

Этот код преобразует объект myObject в строку JSON с отступами, установленными на 3 пробела, что делает вывод более читабельным.

Чтобы ответить на вопрос, пожалуйста, войдите или зарегистрируйтесь