nodeJS教程(二)、nodejs除錯
阿新 • • 發佈:2018-12-13
一、基於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下面的內容:
除錯效果如下: