2013-12-10 65 views
1

如果你运行node你进入交互模式,你可以检查,执行函数等。但是一旦你从交互模式或者从OS shell运行一个函数,你能暂停执行并故意进入交互模式吗?是否有可能在Node.js中进入交互模式?

在浏览器中,您可以使用debugger关键字,但在Node.js中debugger对我无能为力。

+0

Node.js有一个内置的调试器。尽管使用WebStorm作为它与Node.js的调试端口的集成,但我的运气更好。 – Brad

回答

2

当我的软件失败,我要赶紧弄清楚,我添加了一个debugger指令,我想调试器打破,做:

node debug [script I want to debug] 

请注意,这是node debug,而不是node --debug。后者也启动一个调试器,但它是一个等待某个UI连接的端口。

执行上述操作会导致调试器在执行软件之前停止。输入c让它继续。它会在下一步停止你放置debugger声明的地方。如果您想动态评估,可以使用repl命令。

如果你这样做,你不需要任何额外的工具。该文档是here

+0

是的!这就是我想要的,但现在我看不到局部变量,任何想法?只有全局变量从gdb-style控制台可见 – exebook

+0

我通常没有问题。但是,有些东西可能有点混乱。假设您有变量''x'',而''x'的值是''undefined''。所以在调试器中输入''repl''就可以进入repl-mode。然后你输入''x''来评估''x''。你不会从调试器得到任何“x”值为“undefined”的反馈。当我怀疑是这种情况时,我会使用'console.log(x)''。调试器肯定是粗糙的,但不需要任何其他工具是我书中的一个胜利。 – Louis

2

尝试node-inspector,你可以调试你的应用程序与Chrome开发者工具

1.安装并启动节点检查

npm install -g node-inspector 
node-inspector & 

2.启动与调试参数,您的应用程序(如果你想打破在第一行中,更换参数--debug-BRK

node --debug server.js 

3.open调试链接在Chrome

open http://127.0.0.1:8080/debug?port=5858 

enter image description here

相关问题