Node.js速学之-调试

参考文献:[1][EN]Georgo Ornbo.傅强.陈宗斌. Node.js入门经典[M]. 北京:人民邮电出版社.2013.4-1

一、STDIO模块调试
STDIO模块无需其他依赖,可以进行轻量级调试。
1、console.log()

console.log('Debugging message');

用途:检查变量、字符串值/记录函数调用/记录第三方响应
2、console.error()
记录错误产生的原因,例如

function notDefined(){
    try{
        someFunction();
    } catch(e){
        console.error(e);
    }
}
notDefined();

终端如下:

[ReferenceError: someFunction is not defined]

3、代码运行时间测试

console.time('for-1');
//指令
console.timeEnd('for-1');

终端如下:

for-1: 2.566ms

4、堆栈踪迹

function notDefined(){
    console.trace();
    try{
        someFunction();
    } catch(e){
        console.error(e);
    }
}
notDefined();

终端如下:

Trace
    at notDefined (c:\Users\Claves\WebstormProjects\Nodejs1\start.js:2:13)
    at Object. (c:\Users\Claves\WebstormProjects\Nodejs1\start.js:9:1)
    at Module._compile (module.js:399:26)
    at Object.Module._extensions..js (module.js:406:10)
    at Module.load (module.js:345:32)
    at Function.Module._load (module.js:302:12)
    at Function.Module.runMain (module.js:431:10)
    at startup (node.js:141:18)
    at node.js:977:3
[ReferenceError: someFunction is not defined]

二、Node.js调试器
Node.js可以通过设置断点,从而遍历代码。

var foo = function(){
    var a = 3, b = 5;
    debugger;
    var bar = function(){
        var b = 7, c = 11;
        a += b +c;
        debugger;
    }
};
foo();

三、Node Inspector
第三方工具,可以使用Webkit javascript浏览器按步执行