【发布时间】:2015-03-06 00:38:39
【问题描述】:
我是调试领域的新手,尤其是使用 node-inspecor。
安装 node-inspector 后,我使用 --debug 参数启动了我的简单节点应用程序,并且能够在 localhost:8080/debug?port=5858 看到调试视图。
当我让应用在这个断点处停止时:
router.get('/people', function(req, res) {
var num = 1;
var str = 'rarf';
var obj = {x: 1, y: 2}
console.log(req) // breakpoint
});
将光标悬停在标识符上,显示如下:
- 请求:传入消息 - 无属性
- res:服务器响应 - 无属性
- str: "rarf"
- 数量:1
- obj: 对象 - 无属性
为什么我看不到对象的属性?
【问题讨论】:
-
req和res仅在特定路由处理程序中定义(它们是该处理程序函数的参数)。如果您在路由处理程序中设置断点,那么您应该能够检查 req 和 res 的值。由于var x = 'hello'不在您的代码 sn-p 中,因此您没有显示设置断点的位置。 -
我在 sn-p 中添加了 x= 'hello'
-
那么,如果您无法从
hello代码行上的断点看到req和res的值,那么您就没有在节点检查器中正确执行某些操作。我不知道这个问题是什么。你能在 node-inspector 中看到任何变量的值吗? -
我在节点检查器中查看大对象的经验是它有时很慢。因为它是一个不同的过程,有时甚至在不同的计算机上,所以必须在显示之前远程获取属性值。尝试为
req制作一个观察表达式,然后耐心等待值是否显示出来。您还可以在 reference like this one 处查看这些对象的预期属性,然后为您想要查看的各个属性的值创建一个监视表达式。 -
你使用的是什么版本的 Node Inspector 和 Node.js?
标签: node.js debugging node-inspector