2016年,Node 決定將 Chrome 瀏覽器的"開發者工具"做爲官方的調試工具,使得 Node 腳本也可使用圖形界面調試node
1.準備chrome
建立目錄npm
D:\nodejs>mkdir test
D:\nodejs>cd test
生成package.json
文件json
D:\nodejs\test>npm init -y Wrote to D:\nodejs\test\package.json: { "name": "test", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [], "author": "", "license": "ISC" }
安裝 Koa 框架和 koa-route 模塊瀏覽器
D:\nodejs\test>npm install --save koa koa-route npm notice created a lockfile as package-lock.json. You should commit this file. npm WARN test@1.0.0 No description npm WARN test@1.0.0 No repository field. + koa-route@3.2.0 + koa@2.7.0 added 45 packages from 23 contributors and audited 60 packages in 4.74s found 0 vulnerabilities
新建腳本test.js
服務器
const Koa = require('koa'); const router = require('koa-route'); const app = new Koa(); const main = ctx => { ctx.response.body = 'Hello World'; }; const welcome = (ctx, name) => { ctx.response.body = 'Hello ' + name; }; app.use(router.get('/', main)); app.use(router.get('/:name', welcome)); app.listen(3000); console.log('listening on port 3000');
2.調試服務腳本app
運行時,加--inspect
啓動調試模式框架
D:\nodejs\test>node --inspect test.js Debugger listening on ws://127.0.0.1:9229/2d21dab8-02a4-4fde-99b3-2bdfecc6bac4 For help, see: https://nodejs.org/en/docs/inspector listening on port 3001
瀏覽器打開http://127.0.0.1:3001/koa
打開調試工具的方法工具
(1)在 http://127.0.0.1:3001 的窗口打開"開發者工具",左上角有Node 標誌
(2)在 Chrome 瀏覽器的地址欄,鍵入 chrome://inspect 或 about:inspect
(3)調試工具窗口
Console(控制檯)、Source(源碼)、Memory(內存)、Profile(性能)
(4)設置斷點
瀏覽器訪問http://localhost:3001/baby,頁面會顯示正在等待服務器返回
切換到調試工具,能夠看到 Node 主線程處於暫停(paused)階段
進入 Console 面板,輸入 name
正處在斷點處的上下文(context)
Sources 面板,右側能夠看到 Watch、Call Stack、Scope、Breakpoints 等摺疊項
Scope 中,能夠看到 Local 做用域和 Global 做用域裏面的全部變量
在Local 做用域裏面修改變量name,並繼續運行
頁面顯示
(5)終止調試
命令下,ctrl+c
3.調試非服務腳本
Web 服務腳本會一直在後臺運行,可是非服務腳本,運行完就結束了,來不及打開調試工具,如:
function say(word) { console.log(word); } function execute(someFunction, value) { someFunction(value); } execute(say, "Hello");
進入調試
node --inspect-brk=9229 test.js
--inspect-brk
指定在第一行就設置斷點
chrome://inspect
點擊繼續運行,在console面板輸出Hello結束