可以在浏览器控制台中调用console.debug()
函数。
但是在Nodejs中调用console.debug()
时会出现一个错误。
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
为什么呢?有没有办法替换Nodejs中的console.debug
?
答案 0 :(得分:19)
NodeJS中没有console.debug()方法。 Here是控制台对象的文档,因此您可以选择最适合您使用的方法。
答案 1 :(得分: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);
}
}
答案 2 :(得分:4)
添加@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)
}
}
答案 3 :(得分:3)
console.debug()
,但通常不会打印到stdout。
您可以使用--inspect
或--inspect-brk
命令行标记查看console.debug消息,并使用devtools控制台选项卡中的“级别”下拉列表启用详细日志记录。
不幸的是,这并没有将console.debug
的输出解压缩到stdout。
从节点v9.2.0开始,我不知道在stdout中查看console.debug
输出的任何方法,只需用console.log包装器替换该函数。
答案 4 :(得分:0)
为console.debug()添加了节点8.10.0及更高版本支持