Node介绍7-调试js

本文讨论调试JavaScript的方法。

在浏览器中,我们可以通过dev tools去调试,也可以分析内存,cpu使用情况,dev tools本文就不探讨了,里面的profile工具甚是好用。


Node介绍7-调试js_第1张图片
chrome dev tools

我们去看看node怎么调试。

下面是一些调试工具

node-inspector

如果很想保持在浏览器的使用习惯,可以使用node-inspector。由于这个工具太熟悉了,用npm安装一下,没必要啰嗦了,直接用吧。

webstorm

很好用的IDE:https://www.jetbrains.com/webstorm/

visual studio

在"扩展与跟新"中可以下载。


Node介绍7-调试js_第2张图片
NTVS

console

这才是本文要介绍的。实际上文档已经写的很清楚了,这里就看一个例子吧。
写一个简单的测试文件test.js

"use strict";

var FS = require("fs");
FS.stat("test.js", function(err, data) {
    if (err) {
        console.log("error:" + err);
    } else {
        console.log(data);
    }
});

FS.stat("test1.js", function(err, data) {
    if (err) {
        console.log("error:" + err);
    } else {
        console.log(data);
    }
});

var x = 1 + 1;
console.log(x);

function fn() {
    var y = "you and me";
    console.log(y);
}
fn();

无论何时,控制台打印都是很好的调试方法。

Node介绍7-调试js_第3张图片
控制台打印

打印有几个好的地方:

  1. 可以保存到文件,后面再看。
  2. 程序发布以后也可以看到,而使用断点调试的条件一般是在开发环境中。
  3. 远程查看也很方便。
  4. 不会影响程序运行。

debugger

上面的控制台打印有几个不好的地方

  1. 需要对代码很熟,要知道在哪里打印
  2. 需要嵌入console代码
  3. 打印object需要转成字符串
  4. 打印太多的log,需要仔细查看,过滤
  5. 对时序问题,打印不容易看出来

这里只是简单总结一下,希望读者可以回复补充。接下来我们实战一下debug的方法。

1. 使用debug模式运行js

Node介绍7-调试js_第4张图片
debug

2. 查看调试帮助
可以看到支持的命令。

Paste_Image.png

3. 设置断点

sb(5)
sb(13)
sb(25)
Node介绍7-调试js_第5张图片
Paste_Image.png

4. 继续运行,查看值

c
repl
Node介绍7-调试js_第6张图片
Paste_Image.png

5. 查看当前上下文
可以看到当前代码在哪行

list(5)
Node介绍7-调试js_第7张图片
Paste_Image.png

总结

这个debugger比起有图形界面的肯定是挫了太多,不过有总比没有好。我们在懒得装图形工具的时候,可以用这个救救急,而且,人家也没有那么不好用,越难用的工具需要你脑子越清楚,这样反而有助于思考,这可能是现在还有很多人喜欢用vim和emacs的原因吧。

本文参考:
官方文档:https://nodejs.org/api/debugger.html

你可能感兴趣的:(Node介绍7-调试js)