NodeJS调试器中显示更多行

时间:2014-01-22 13:54:56

标签: node.js debugging

拥有一个文件(我们称之为script.js),内容如下:

console.log("Hello World!");

(所以,一行有一个console.log)

运行node script.js它输出"Hello World!"

问题出在我运行node debug script.js时。我得到以下输出:

$ node debug script.js 
< debugger listening on port 5858
connecting... ok
break in script.js:1
  1 console.log("Hello World!");
  2 
  3 });
debug> 

为什么最后两行出现?

它看起来像一个错误,但也许有另一个解释?

1 个答案:

答案 0 :(得分:3)

它只显示了在流程结束之前调试的部分代码。您在节点中编写的代码将被放入一个函数中,该函数为该范围提供所需的所有变量。这就是他们如何解决整个全局范围变量问题,因为每个模块都有自己的“全局”范围。

使用node-inspector进行调试时,可以看到一个很好的例子。它允许您在调试时单击项目的资产。

我创建了一个以console.log("Hello, world!");为唯一行的script.js文件。查看节点检查器内部的内容:


安装node-inspector

  1. npm install -g node-inspector

  2. 打开终端,输入“node-inspector”,应用程序将开始运行。

  3. 导航至http://localhost:8080/debug?port=58581。你会看到这样的屏幕:

  4. 现在在另一个终端窗口中运行您的应用程序node --debug-brk script.js--debug-brk只会导致节点在应用程序的第一行中断,直到连接调试器为止。

  5. 刷新节点检查器页面,然后您可以开始调试:D