node.js調試

用了幾天node.js感受很新奇,可是調試問題實在是愁煞人,開始的時候懶的學習調試方法,看看異常內容就能夠了,但隨着代碼複雜程度的上升,並非全部錯誤都是語法錯誤了,不調試搞不定了,只好搜搜資料,學習了一下怎麼調試。node

不用每次都重啓服務的supervisor

 使用過PHP的同窗確定都清楚,修改了某個腳本文件後,只要刷新頁面服務器就會加載新的內容,可是node.js在第一次引用到某個文件解析後會將其放入內存,下次訪問的時候直接在內存中獲取,以提升效率,可是這對咱們開發形成必定困擾,修改了某個module後只能重啓服務器後才能生效,調試起來效率仍是很低的。web

因而乎node.js中有了supervisor插件幫咱們堅實文件改動,自動重啓服務器,supervisor是node.js的一個包,安裝起來很簡單,使用npm的安裝命令就能夠,由於咱們須要在控制檯運行,因此須要安裝在全局環境中chrome

npm install -g supervisor

 這樣咱們就可使用supervisor啓動腳本了npm

supervisor index

 

當咱們對文件作了改動的時候,能夠看到控制檯多了三行,服務器已經重啓了瀏覽器

 原生控制檯調試

node.js自己支持調試,在語句前面加debugger指令就能夠添加一個斷點服務器

複製代碼
var server=require('./server'),
    router=require('./router'),
    requestHandlers=require('./requestHandlers');
debugger;
var handle={};
debugger;
handle['/']=handle['/start']=requestHandlers.start;
debugger;
handle['/upload']=requestHandlers.upload;
handle['/show']=requestHandlers.show;
debugger;
server.start(8080,router.route,handle);
複製代碼

 

在啓動服務的時候添加debug 選項websocket

node debug index.js

這時候輸入一些指令就能夠單步調試、到斷點監視局部變量等,看個命令圖,不少命令都有其縮寫形式eclipse

node.js調試命令
命令 功能
run
執行腳本,在第一行暫停
restart
從新執行腳本
cont, c
繼續執行,直到遇到下一個斷點
next, n
單步執行
step, s

單步執行並進入函數socket

out, o

從函數中步出svn

setBreakpoint(), sb()

當前行設置斷點

setBreakpoint(‘f()’), sb(...)
在函數f的第一行設置斷點
setBreakpoint(‘script.js’, 20), sb(...)
在 script.js 的第20行設置斷點
clearBreakpoint, cb(...)
清除全部斷點
backtrace, bt
顯示當前的調用棧
list(5)
顯示當前執行到的先後5行代碼
watch(expr)
把表達式 expr 加入監視列表
unwatch(expr)
 把表達式 expr 從監視列表移除 
watchers
顯示監視列表中全部的表達式和值
repl
在當前上下文打開即時求值環境
kill
終止當前執行的腳本
scripts
顯示當前已加載的全部腳本
version
顯示v8版本

 

 
 



 
     

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

詳細使用有興趣同窗能夠本身摸索,我是沒興趣。。。太複雜了,看幾個貼心的

使用Eclipse調試

是的,Eclipse又威武了,連node.js也能調試,在Eclipe官網上下載eclipse,而後 Help->Install New Software->Add

在彈出的窗口添加一個源,名字好記就行,地址是http://chromedevtools.googlecode.com/svn/update/dev/

等一下子後彈出選擇界面,選中第一個

 一路next到最後finish,下載完成後會提醒重啓Eclipse,完成以後就能夠調試node.js了,打開想調試的文件,切換Eclipse到調試視圖,點擊工具欄右邊的小三角,選擇Debug Configuration

雙擊 Standard V8 VM 選項建立一個新的配置,填好相應參數

經過 --debug-brk選項在控制檯啓動node服務器

node --debug-brk=5858 test.js

點擊Eclipse剛纔界面的debug按鈕,就能夠像調試Java同樣調試node.js了

使用node-inspector調試

大部分node.js應用都是web應用,因此一些基於Chrome的在線調試工具應運而生,最出名的應該就是node-inspector了,這是一個node.js的模塊,安裝、使用至關的方便,首先使用npm把其安裝在全局環境中

npm install -g node-inspector

node-inspector是經過websocket方式來轉向debug輸入輸出的。所以,咱們在調試前要先啓動node-inspector來監聽node.js的debug調試端口。默認狀況下node-inspector的端口是8080,能夠經過參數--web-port=[port]來設置端口。

在啓動node-inpspector以後,咱們能夠經過--debug或--debug-brk來啓動node.js程序。

這時候就能夠訪問http://127.0.0.1:8888/debug?port=5858 使用瀏覽器調試了,看看界面,不用多說什麼了吧

最後

參考:node.js開發指南

PS:我的以爲仍是最後一種最方便

相關文章
相關標籤/搜索