Node.js NodeJS调试器中将显示更多行

Node.js NodeJS调试器中将显示更多行,node.js,debugging,Node.js,Debugging,拥有一个包含以下内容的文件(我们称之为script.js): console.log("Hello World!"); (因此,一行上有一个console.log) 运行node script.js它输出“Hello World!” 问题是当我运行节点调试脚本.js时。我得到以下输出: $ node debug script.js < debugger listening on port 5858 connecting... ok break in script.js:1 1 co

拥有一个包含以下内容的文件(我们称之为
script.js
):

console.log("Hello World!");
(因此,一行上有一个console.log)

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

问题是当我运行
节点调试脚本.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> 
$node debug script.js
<调试器正在端口5858上侦听
连接。。。好啊
break-in-script.js:1
1控制台日志(“你好,世界!”);
2.
3 });
调试>
为什么会出现最后两行


对我来说,这看起来像一个bug,但可能还有另一种解释?

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

在调试时可以看到一个很好的例子。它允许您在调试时单击项目的资产

我用
console.log(“你好,世界!”)创建了一个script.js文件作为唯一一行。查看节点检查器内部的外观:


要安装:

  • npm安装-g节点检查器

  • 打开终端,键入“节点检查器”,应用程序将开始运行

  • 导航到
    http://localhost:8080/debug?port=58581
    。您将看到如下屏幕:

  • 现在在另一个终端窗口中运行应用程序
    节点--debug brk script.js
    <代码>--debug brk
  • 只会导致节点在应用程序的第一行中断,直到附加了调试器

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


  • 我知道Node会自动将您的代码包装到函数(即模块模式)中,这可以解释最后一行“}”);“但我很惊讶您没有看到新的第一行“function(exports){”太多了。@HectorCorrea它只在遇到断点的那一行之后显示了几行。你在哪里看到这个?这是。有关如何安装和使用它,请参阅我的编辑:)gif屏幕记录!;-)很好。谢谢!没问题。它们是我最喜欢的快速显示内容的新方式:)