如何调试Node.js服务器应用程序?
现在,我主要使用如下打印语句的警报调试:
sys.puts(sys.inspect(someVariable));
必须有更好的调试方法。我知道Google Chrome有一个命令行调试器。这个调试器也适用于Node.js吗?
如何调试Node.js服务器应用程序?
现在,我主要使用如下打印语句的警报调试:
sys.puts(sys.inspect(someVariable));
必须有更好的调试方法。我知道Google Chrome有一个命令行调试器。这个调试器也适用于Node.js吗?
当前回答
Theseus是Adobe research的一个项目,它允许您在开源编辑器Brackets中调试Node.js代码。它有一些有趣的特性,如实时代码覆盖、追溯检查、异步调用树。
其他回答
node-debug -p 8888 scriptFileName.js
从“文件”->“首选项”->“设置”->“搜索自动附加”并将其设置为“打开”,打开控制台(ctrl+*)或从菜单“终端”->“新建终端”,在代码中设置断点,键入命令
node --inspect <name of your file>
这将启动调试,VS代码将显示调试菜单。
注意:如果使用节点集群工作线程,自动附加也非常有用。
如果您需要Node.js的强大日志库,Tracerhttps://github.com/baryon/tracer是更好的选择。
它输出带有时间戳、文件名、方法名、行号、路径或调用堆栈的日志消息,支持颜色控制台,并轻松支持数据库、文件和流传输。我是作者。
我创建了一个名为pry.js的小工具,可以帮助您解决问题。
将一个简单的语句放在代码中的某个地方,正常运行脚本,节点将停止当前线程,从而允许您访问所有变量和函数。随意查看/编辑/删除它们!
var pry = require('pryjs')
class FizzBuzz
run: ->
for i in [1..100]
output = ''
eval(pry.it) // magic
output += "Fizz" if i % 3 is 0
output += "Buzz" if i % 5 is 0
console.log output || i
bar: ->
10
fizz = new FizzBuzz()
fizz.run()
用您最喜欢的浏览器调试器调试小型Node.js脚本的一种快速而肮脏的方法是使用browserify。注意,这种方法不适用于任何需要本机I/O库的应用程序,但对于大多数小型脚本来说,它已经足够好了。
$ npm install -g browserify
现在将所有var x=requires('x')调用移动到requires.js文件中并运行:
$ browserify requires.js -s window -o bundle.js
(这里的缺点是,您必须移动或注释所有文件中的要求。)
在HTML文件中包含bundle.js,如下所示:
<script type="text/javascript" src="bundle.js"></script>
现在在浏览器中加载文件,然后在浏览器中按F12和viola:debug。