nodejs调试工具node-inspector入门随笔

最近打算玩玩node。前端

众所周知,在前端,调试代码有一众自然好工具——浏览器!特别是 chrome,使得 jser 们如鱼得水,玩得风生水起。可是到了node,状况就不同了,js 代码再也不运行在单纯的浏览器中,而是直接运行在操做系统里,摇身一变成为了一等公民。今后,这node下的js与浏览器就再也不是难兄难弟分不开,而是牛郎与织女,中间隔着一条大银河!node

几年前有同事使用nodejs写了一个邮件服务反向代理,作一些分发和细微处理。用户量不大也不小,可是常常crash。好在node事件机制比较完善,down掉以后能及时重启,因此用起来效果还挺不错。当时同事调试代码主要用node-webkit,我也试用过,挺不错!就好像在浏览器中调试同样,并且能够读写文件,作一等编程语言公民才能作的事,很开生!web

最近看到有同事使用node-inspector调试,熟悉的界面,跟node-webkit差很少。不过我想既然有node-webkit了,又出个node-inspector,确定有不同的地方!抱着这样的好奇心,我开始了折腾node-inspector。chrome

因为是用mac办公,电脑上有现成的node。只须要 homebrew install node-inspector,啪……不一下子就装好了。node-inspector -v,啪!v.0.12.4。而后就是例行的hello world!,以下:npm

 1 var http = require('http');
 2 var port = 8080;
 3 var fs = require('fs');
 4 
 5 http.createServer(function (req, res) {
 6     res.writeHead(200, {'Content-Type': 'text/plain'});
 7     res.end('Hello World\n');
 8 }).listen(port, '127.0.0.1');
 9 
10 
11 console.log('Server running at http://127.0.0.1:' + port + '/');

感受很不错,按说明,先执行编程

$ node-inspector

再执行浏览器

$ node --debug-brk server.js

按照上面执行 node-inspector 的说明,在浏览器中打开 tcp

http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858 编程语言

执行调试。复制粘贴啪!GOOD!调试界面出来了,很顺利。工具

兴奋之余,不禁自主地刷新了几回浏览器,一闪……一闪……一闪,终究是没有闪出来,页面一片空白!

很伤心!我以为多是端口被别的程序给占用了,用tcp命令查看,发现没有程序占用啊。打开浏览器开发工具,发现了几处错误,是跟RunTime……相关的问题,因而把错误复制狠狠google。果不其然,网上早已有同行在讨论这个错误了!

有的是把浏览器的一些个扩展禁用掉就行了

有的是把chrome用一些控制参数(太复杂也不知道怎么弄)启动就好

有的说node和node-inspector的版本不对

更有甚者,说homebrew安装的可能和npm安装的不一样……

我一一试验,没有一个成功的。把同事电脑上的node-inspector拷贝过来,一样也不行。再后来我精疲力竭,就搁置了。

与这样好一个调试工具无缘,我是坚定不容许这种状况发生的!

因而今天晚上我又开始了折腾。重启几回以后,发现每次重启以后第一次在浏览器中打开是能够的,可是日后就不行。这一次,我是清醒的!因而我琢磨换个端口,有可能跟node-inspector的8080冲突了。因而我改为以下:

var http = require('http');
var port = 8000;
var fs = require('fs');

http.createServer(function (req, res) {
    res.writeHead(200, {'Content-Type': 'text/plain'});
    res.end('Hello World\n');
}).listen(port, '127.0.0.1');


console.log('Server running at http://127.0.0.1:' + port + '/');

中止sever再启动,刷新浏览器。第一次像往前同样是成功的,刷新,nice!总算成功了!暂时还不清楚深层次的缘由,夜深了就改天再研究了!在这里记录下这一激动人心的时刻!

相关文章
相关标签/搜索