Рубрики
Без рубрики

Как зарегистрировать объект в узле

Регистрация объектов в Node.js

Когда вы вводите console.log() в программу JavaScript, которая запускается в браузере, это создаст красивую запись в консоли браузера:

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

В узле происходит то же самое.

У нас нет такой роскоши, когда мы регистрируем что-то на консоли, потому что это приведет к выводу объекта в оболочку, если вы запустите программу узла вручную, или в файл журнала. Вы получаете строковое представление объекта.

Теперь все в порядке до определенного уровня вложенности. После двух уровней вложенности узел сдается и печатает [Объект] в качестве заполнителя:

const obj = {
  name: 'Flavio',
  age: 35,
  person1: {
    name: 'Tony',
    age: 50,
    person2: {
      name: 'Albert',
      age: 21,
      person3: {
        name: 'Peter',
        age: 23
      }
    }
  }
}
console.log(obj)


{
  name: 'Flavio',
  age: 35,
  person1: {
    name: 'Tony',
    age: 50,
    person2: {
      name: 'Albert',
      age: 21,
      person3: [Object]
    }
  }
}

Как вы можете напечатать весь объект целиком?

Лучший способ сделать это, сохранив красивый отпечаток, – использовать

console.log(JSON.stringify(obj, null, 2))

где 2 это количество пробелов, используемых для отступов.

Другой вариант – использовать

require('util').inspect.defaultOptions.depth = null
console.log(obj)

но проблема в том, что вложенные объекты после уровня 2 теперь сглажены, и это может быть проблемой со сложными объектами.

Оригинал: “https://flaviocopes.com/node-inspect-object/”