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!總算成功了!暫時還不清楚深層次的緣由,夜深了就改天再研究了!在這裏記錄下這一激動人心的時刻!

相關文章
相關標籤/搜索