nodejs-chrome調試

來源:互聯網
上載者:User

1:基於Nodejs內建的調試器

Nodejs提供了一個內建調試器來協助開發人員調試應用程式。想要開啟調試器我們需要在代碼中加入debugger標籤,當Nodejs執行到debugger標籤時會自動暫停(debugger標籤相當於在代碼中開啟一個斷點)。代碼如下:

var path = url.parse(req.url).pathname;
debugger;
res.writeHead(200, {'Content-Type': 'text/plain'});

執行命令:node debug example.js 就可以進入偵錯模式。

 

在debug模式下,可以使用內建命令如repl去評估變數和運算式的值(如2所示)。我們也可以通過help命令來擷取完整的調試命令列表。

Commands: run (r), cont (c), next (n), step (s), out (o), backtrace (bt), setBreakpoint (sb), clearBreakpoint (cb),
watch, unwatch, watchers, repl, restart, kill, list, scripts, breakpoints, version

 

 

2:nodejs-chrome調試

前提條

· 本文是在linux環境下實踐的

· 已經安裝nodejs

· 已經安裝npm

安裝node-inspector

npm install -g node-inspector

讓指令碼進入調試狀態

準備一段指令碼

test.js

function isSiemen(name) {

return 'siemenliu' === name;

}

debugger; // 在需要中斷的地方加上下面這句

var name = 'xiaoming';

isSiemen(name);

進入調試狀態

node --debug-brk test.js

這是可以看到這麼一句話”debugger listening on port 5858”游標在下一行待命 現在就已經做好了調試前的準備

啟動node-inspector

啟動node-inspector可以在任何目錄 因為之前安裝時已經加了-g的參數 而node-inspector與目前的目錄並沒有什麼直接聯絡 它會直接去連結剛才進入調試的5858連接埠

node-inspector &

啟動成功後可以看到類似這樣

重要:步驟不能打亂,必須先讓指令碼進入調試狀態,看到listening on port 5858後再啟動,否則會調試不成功

調試代碼

如果本機就直接webkit核心瀏覽器訪問

http://127.0.0.1:8080/debug?port=5858

非本機也可以通過直接存取啟動了node-inspector的ip地址的8080連接埠

http://REMOTE_IP:8080/debug?port=5858

就可以直接看到熟悉的調試介面啦,就像調試瀏覽器js一樣調試nodejs

現在直接按F8就會跳到剛才debug的位置

非常重要的一點

如果要做多次調試,當本次調試完成後,通常思維是我們只要再起一個node的debug模式依然是監聽5858連接埠,再去重新整理瀏覽器應該就能繼續下次調試,可惜這麼做是行不通滴。 這麼做會得到這麼一句話:not connect

然後inspector還是空空滴 想要再次調試需要中斷node-inspector的運行 快速鍵ctrl+c中斷後

尋找8080連接埠佔用進程

liof -i:8080

然後kill掉這個進程

kill -9 <NODE_PID>

再次啟動node-inspector就可以啦

node-inspector &

雖然有點不夠方便,但至少已經可以在瀏覽器中調試了

如果不kill會怎麼樣呢socket.io回報錯的,因為node還是監聽著8080連接埠 就象這樣 得到警告:warn - error raised: Error: listen EADDRINUSE

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.