nodejs內部提供一個debug機制,可以讓程序進入debug模式,供開發者一步一步分析代碼發現問題。 共有3中啟動參數可以讓程序進入debug模式,假設我們要對app.js進行調試。 node debug app.js node --debug app.js node --debug-brk app.js 3種模式在調試形式上有一定區別。 node debug app.js 1.這種方式啟動程序,程序會進入debug模式,並運行到啟動文件的第1行就停止,等待開發者下發往下走的命令。 2.這種方式啟動程序,直接在當前cmd中進入調試模式。 node --debug app.js 1.這種方式啟動程序,程序會進入debug模式,並運行完所有代碼。這種啟動方式往往用於程序啟動的過程中不需要調試,通過觸發時間進入回調函數的情況,比如在某個http請求中打上斷點,等待客戶端訪問后進入斷點。 2.這種方式啟動程序,會開啟一個TCP的端口監聽,在本cmd中不進入調試模式,需要另外開啟終端用node debug 命令連接調試端口。命令為 node debug localhost debug端口或者 node debug p node進程id。 node --debug-brk app.js 1.這種方式啟動程序,程序會進入debug模式,但是不會運行代碼,直到有一個終端連接到了debug端口,才開始執行代碼,並在第1行進入斷點。 2.這種方式啟動程序,會開啟一個TCP的端口監聽,在本cmd中不進入調試模式,需要另外開啟終端用node debug 命令連接調試端口。 進入debug模式后,可以通過一些命令來設置斷點、取消斷點以及控制程序執行流程。Nodejs支持js原生的調試,可通過debugger來下斷點。通過console.log(var)來顯示變量的值。也可以在debug下輸入repl再來查看變量的值。 node.js調試命令
命令 功能 run 執行腳本,在第一行暫停 restart 重新執行腳本 cont,c 繼續執行,直到遇到下一個斷點 next, n 單步執行 step, s 單步執行並進入函數 out, o 從函數中步出 setBreakpoint(), sb() 當前行設置斷點 setBreakpoint(‘f()’), sb(…) 在函數f的第一行設置斷點 setBreakpoint(‘script.js’, 20), sb(…) 在 script.js 的第20行設置斷點 clearBreakpoint, cb(…) 清除所有斷點 cbacktrace, bt 顯示當前的調用棧 list(10) 顯示當前執行到的前后10行代碼 watch(expr) 把表達式 expr 加入監視列表 unwatch(expr) 把表達式 expr 從監視列表移除 watchers 顯示監視列表中所有的表達式和值 repl 在當前上下文打開即時求值環境 kill 終止當前執行的腳本 scripts 顯示當前已加載的所有腳本 version 顯示v8版本
nodejs中有supervisor這個熱部署組件,supervisor插件幫我們監視文件改動,自動重啟服務器,supervisor是node.js的一個包,安裝起來很簡單,使用npm的安裝命令就可以,因為我們需要在控制台運行,所以需要安裝在全局環境中。
npm install -g supervisor
源文地址:https://blog.csdn.net/rznice/article/details/52710801?locationNum=14
