Консоль не имеет метода отладки в Nodejs?

Функция console.debug() может быть вызвана в консоли браузера.

Однако есть одна ошибка, когда console.debug() вызывается в Nodejs.

TypeError: Object #<Console> has no method 'debug'
    at Object.<anonymous> (c:\share\node\receive.js:20:9)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:929:3

Почему? Есть ли способ заменить console.debug на Nodejs?

Ответ 1

В NodeJS нет метода console.debug(). Здесь - документация для объекта консоли, поэтому вы можете выбрать лучший способ для использования.

Ответ 2

Как и в предыдущем ответе, нет метода console.debug() в node.js. использовать журнал, информацию, предупреждение, методы ошибок https://nodejs.org/api/console.html

Это означает, что вы можете расширить консольный объект, включив метод console.debug(), и только этот метод печатает сообщения консоли в режиме отладки.

var isDebugMode = true;

console.debug = function(args)
{
  if (isDebugMode){
    console.log(args);
  }
}

Ответ 3

Добавляя к ответу @maninvan, я бы использовал синтаксис args переменных:

var isDebugMode = true;

console.debug = function(/* ...args */) {
    if(isDebugMode) {
        var vargs = Array.prototype.slice.call(arguments);
        console.log.apply(this, vargs);
    }
}

// or ES6 style
console.debug = (...args) => {
    if(isDebugMode) {
        console.log.apply(this, args)
    }
}

Ответ 4

Поскольку node 9.3.0 console.debug теперь будет отображаться по умолчанию в stdout.


Старое решение:

console.debug() был добавлен в node v8.0.0, но обычно не будет печатать на stdout.

Вы можете просмотреть сообщения console.debug с помощью флагов командной строки --inspect или --inspect-brk и включить подробное ведение журнала с выпадающим списком уровней на вкладке консоли devtools.

вкладка вкладка

К сожалению, это не отключает вывод console.debug в стандартный вывод.

stdout in repl

Как и в случае с node v9.2.0, я не знаю, как просмотреть вывод console.debug в stdout, не дополнив эту функцию оболочкой console.log.