Как получить полный объект в console.log() Node.js, а не '[Object]'?
У меня есть такой объект:
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 ответ(ов)
Попробуйте следующее:
console.dir(myObject, { depth: null });
Этот код выводит myObject
в консоль, позволяя вам просмотреть его структуру без ограничения глубины вложенности. Установка параметра depth
в значение null
позволяет увидеть все уровни объектов.
Другим простым способом является преобразование объекта в JSON. Вы можете использовать следующий код:
console.log('connection : %j', myObject);
Используя %j
, вы форматируете вывод в виде JSON-строки, что позволяет вам легко просмотреть содержимое объекта myObject
в логах.
Оба этих варианта можно использовать в зависимости от ваших потребностей:
// более компактный вариант, поддерживает цвета (лучше подходит для логирования в менеджерах процессов)
console.dir(queryArgs, { depth: null, colors: true });
// позволяет получить четкий список фактических значений
console.log(JSON.stringify(queryArgs, undefined, 2));
Первый вариант (console.dir
) более удобен для чтения при работе с большими объектами, так как позволяет использовать цвета и настраивать глубину отображаемых свойств. Второй вариант (console.log
с JSON.stringify
) полезен, когда нужно увидеть объект в структурированном виде с отступами, что облегчает понимание данный. Выбор между ними зависит от того, какая информация вам важнее в данный момент.
Возможно, вам достаточно использовать console.dir
.
Согласно документации Node.js:
https://nodejs.org/api/console.html#console_console_dir_obj
console.dir
применяет util.inspect
к объекту и выводит полученную строку в стандартный поток вывода (stdout).
Если вам нужно больше контроля над выводом, вы можете воспользоваться функцией util.inspect
.
Вы также можете сделать так:
console.log(JSON.stringify(myObject, null, 3));
Этот код преобразует объект myObject
в строку JSON с отступами, установленными на 3 пробела, что делает вывод более читабельным.
Использование async/await с циклом forEach
Запись в файлы в Node.js
Функция map для объектов (вместо массивов)
Как вывести циклическую структуру в формате, похожем на JSON?
Как прочитать JSON-файл в память сервера?