一、基于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下面的内容:

调试效果如下:

本文介绍两种Node.js调试方法:一是利用内建调试功能,通过在JS文件中添加debugger或使用setBreakpoint()设置断点,配合特定命令进行单步调试、变量监视;二是结合node-inspect与Chrome浏览器,实现更直观的调试体验。文章详细列出调试命令,并指导如何安装和使用node-inspect。
383

被折叠的 条评论
为什么被折叠?



