console.log и util.inspect неправильно печатают объект

Только в конкретном объекте, когда я использую console.log или печатаю результат util.inspect, я получаю в результате только число 1 или 2.

Как мне теперь узнать, что напечатанный объект — это не просто число 1 или 2? Я использую инспектор отладчика, чтобы увидеть атрибуты и функции, также можно запустить некоторый код для проверки всех элементов объекта, описанных в Node.js console.log(object) печатает пустой объект.

ПРИМЕЧАНИЕ. Я попытался клонировать/скопировать объект, и у меня такое же поведение. Что не так с этим объектом?

Я использую эту библиотеку: https://hexo.io/

Когда я пытался использовать эту функцию: https://hexo.io/api/renderer.html

Пример кода:

hexo.extend.renderer.register('some', 'html', function (data, options, callback) {

    console.log("Data");
    console.log(data); // It works (object is printed sucessfully)
    console.log("Options");
    console.log(options); // I got "2" printed.

    // something unrelated code to use the callback

}, false);

Как я уже сказал, объект options имеет несколько разных членов и ведет себя так же/похоже на util.inspect, даже если я указал глубину и/или другие параметры.

Моя цель - найти, почему это происходит, и как это исправить?

ИЗМЕНИТЬ:

Кроме того, если я попытаюсь сериализовать этот объект в JSON, используя JSON.stringify, это исключение, которое я получу:

Unhandled rejection TypeError: Converting circular structure to JSON
    at Object.stringify (native)

person J. Lennon    schedule 04.11.2015    source источник
comment
Я не знаю, как вам помочь, но вы пытались увидеть варианты typeof()? Это может навести порядок.   -  person Rodmentou    schedule 04.11.2015
comment
@RodrigoSouza результат - объект.   -  person J. Lennon    schedule 04.11.2015
comment
Что печатает console.log(arguments)?   -  person laggingreflex    schedule 04.11.2015
comment
попробуйте изменить имя параметра функции function (data_r, options_r, callback_r) {, затем console.log(options_r); что получилось?   -  person aswzen    schedule 04.11.2015
comment
@laggingreflex Я получил только число для этого ошибочного объекта, такое же поведение, как сообщалось. Для других аргументов объекты печатаются нормально.   -  person J. Lennon    schedule 04.11.2015
comment
@aswzen такое же поведение, второй аргумент всегда печатается неправильно.   -  person J. Lennon    schedule 04.11.2015
comment
возможно, это ошибка самого hexo... попробуйте использовать другую версию hexo или посмотрите свой код над регистром, может быть, вы просто установили значение 2, это все, что я могу вам помочь   -  person aswzen    schedule 04.11.2015
comment
Итак, просто для обзора, этот код: console.log(typeof options, options, options.prop) (где prop — известное свойство) напечатает: object 2 propvalue Верно? Если да, то должен сказать, что это очень странно.   -  person laggingreflex    schedule 04.11.2015
comment
Я бы покопался в шестнадцатеричном источнике в node_modules, чтобы найти, где этот hexo.extend.renderer.register определен, потому что он должен генерировать этот объект options, чтобы увидеть, что он с ним делает.   -  person laggingreflex    schedule 04.11.2015
comment
@lagingreflex спасибо за помощь. Результат console.log(typeof options, options, options.cache) был object 2 false Я считаю, что проблема заключается в какой-то круговой структуре внутри этого объекта. Потребуются некоторые тесты в отдельной среде только с console.log, чтобы увидеть, как он себя ведет.   -  person J. Lennon    schedule 05.11.2015