首頁 > web前端 > js教程 > node.js中怎麼進行除錯?

node.js中怎麼進行除錯?

青灯夜游
發布: 2020-11-18 17:56:35
轉載
2457 人瀏覽過

node.js中怎麼進行除錯?

相關推薦:《nodejs 教學

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

不用每次都重啟服務的supervisor

 使用過PHP的同學肯定都清楚,修改了某個腳本檔案後,只要刷新頁面伺服器就會載入新的內容,但是node .js在第一次引用到某個文件解析後會將其放入內存,下次訪問的時候直接在內存中獲取,以提高效率,但是這對我們開發造成一定困擾,修改了某個module後只能重啟伺服器後才能生效,調試起來效率還是很低的。

於是乎node.js中有了supervisor插件幫我們堅實檔案改動,自動重啟伺服器,supervisor是node.js的一個包,安裝起來很簡單,使用npm的安裝指令就可以,因為我們需要在控制台運行,所以需要安裝在全域環境中

npm install -g supervisor
登入後複製

 這樣我們就可以使用supervisor啟動腳本了

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 選項

node debug index.js
登入後複製

這時候輸入一些指令就可以單步調試、到斷點監視局部變數等,看個指令圖,很多指令都有其縮寫形式

##out, osetBreakpoint(), sb()在函數f的第一行設定斷點在 script.js 的第20行設定斷點清除所有斷點顯示目前的呼叫堆疊顯示目前執行到的前後5行程式碼把表達式 expr 加入監視清單##unwatch(expr)watchersreplkillscriptsversion#

详细使用有兴趣同学可以自己摸索,我是没兴趣。。。太复杂了,看几个贴心的

使用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:个人觉得还是最后一种最方便

更多编程相关知识,请访问:编程学习网站!!

#node.js調試指令
指令 功能
run

執行腳本,在第一行暫停

restart

重新執行腳本

#cont, c

繼續執行,直到遇到下一個斷點

next, n

單步執行

#step, s

單步驟執行並進入函數

從函數中步出

目前行設定斷點

setBreakpoint('f()'), sb(...)


setBreakpoint('script.js', 20), sb(...)


clearBreakpoint, cb(...)


backtrace, bt


list(5)


#watch(expr)



 把表達式 expr 從監視清單移除 


顯示監視清單中所有的表達式和值


在目前上下文開啟即時求值環境


##終止目前執行的腳本


#顯示目前已載入的所有腳本


顯示v8版本

以上是node.js中怎麼進行除錯?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:cnblogs.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板