控制台在Nodejs中没有方法'debug'?

zan*_*ngw 14 javascript console node.js

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
Run Code Online (Sandbox Code Playgroud)

为什么?console.debug在Nodejs中有什么方法可以替换吗?

Mor*_*rry 19

NodeJS中没有console.debug()方法.以下是控制台对象的文档,因此您可以选择最佳方法供您使用.

  • 请注意,`console.debug()`存在于Node v8(可能还有v7)中,但它似乎是一个无操作:该函数调用时没有错误,但是没有内容出现在stdout或stderr上. (9认同)

man*_*van 5

如前面的答案所述,node.js中没有console.debug()方法.使用日志,信息,警告,错误方法https://nodejs.org/api/console.html

这就是说你可能会扩展控制台对象以包含一个console.debug()方法,并且在调试模式下只有这个方法打印控制台消息.

var isDebugMode = true;

console.debug = function(args)
{
  if (isDebugMode){
    console.log(args);
  }
}
Run Code Online (Sandbox Code Playgroud)


Kev*_*vin 5

从 Node 9.3.0开始,console.debug 现在将默认显示在 stdout 中。


旧的解决方案:

console.debug()在节点 v8.0.0 中添加,但通常不会打印到标准输出。

您可以使用--inspect--inspect-brk命令行标志并使用 devtools 控制台选项卡中的“级别”下拉列表启用详细日志记录来查看 console.debug 消息。

具有默认过滤功能的开发工具控制台选项卡 开发工具的控制台选项卡没有过滤

不幸的是,这并没有取消console.debug对标准输出的输出。

重复中的标准输出

从节点 v9.2.0 开始,我不知道有什么方法可以console.debug在 stdout 中查看 的输出,除非用 console.log 包装器替换该函数。