1. 程式人生 > >nodeJS教程(二)、nodejs除錯

nodeJS教程(二)、nodejs除錯

一、基於nodejs內建的除錯

node.js本身支援除錯,在js檔案中加上debbuger或者在cmd中通過setBreakpoint()可以新增斷點。

要使用nodejs的除錯服務,只要在啟動命令時加上debug。如:node debug web.js。

這時候輸入一些指令就能夠單步除錯、監視變數。

命令 功能
backtrace, bt 顯示當前的呼叫棧
clearBreakpoint, cb(...) 清除所有斷點
cont, c 繼續執行,直到遇到下一個斷點
kill 終止當前執行的指令碼
list(n) 顯示當前執行到的前後n行程式碼
next, n 單步執行
out, o 從函式中步出
repl 在當前上下文開啟即時求值環境
restart 重新執行指令碼
run 執行指令碼,在第一行暫停
scripts 顯示當前已載入的所有指令碼
setBreakpoint(), sb() 當前行設定斷點
setBreakpoint('fn()'), sb(...) 在函式fn的第一行設定斷點
setBreakpoint('app.js', 20), sb(...) 在 app.js 的第20行設定斷點
step, s 單步執行並進入函式
unwatch(expr)  把表示式 expr 從監視列表移除 
version 顯示v8版本
watch(expr) 把表示式 expr 加入監視列表
watchers 顯示監視列表中所有的表示式和值

比如web.js檔案如下:

var http = require("http");
http.createServer(function(request, response) {
    response.writeHead(200, {'Content-Type': 'text/plain'});
	response.write("111");
	debugger;
	response.end("222");
	debugger;
}).listen(8000);

在上面的命令列輸入cont之後會監聽服務。客戶端開啟http://127.0.0.1:8000/後,這時候會進入第一個斷點(第6行)。輸入repl,就能夠檢視當前上下文變數。退出repl後,輸入cont可以進入下一個斷點。

二、內建node-inspect+chrome除錯

全域性安裝node-inspect:npm install -g node-inspect

cmd中輸入:node --inspect-brk  檔名。(node --debug現在已經不推薦使用,改成--inspect了)

chrome瀏覽器開啟伺服器url後,開啟控制檯。點選控制檯的nodejs圖示,就可以開啟除錯視窗。

或者輸入chrome://inspect/#devices,在開啟的頁面中,找到Remote Target下面的內容:

除錯效果如下: