如何调试Node.js服务器应用程序?
现在,我主要使用如下打印语句的警报调试:
sys.puts(sys.inspect(someVariable));
必须有更好的调试方法。我知道Google Chrome有一个命令行调试器。这个调试器也适用于Node.js吗?
如何调试Node.js服务器应用程序?
现在,我主要使用如下打印语句的警报调试:
sys.puts(sys.inspect(someVariable));
必须有更好的调试方法。我知道Google Chrome有一个命令行调试器。这个调试器也适用于Node.js吗?
当前回答
我创建了一个名为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()
其他回答
作为Google Chrome开发者工具的一部分发布的V8调试器可用于调试Node.js脚本。可以在Node.js GitHub wiki中找到这一工作原理的详细说明。
使用Chrome版本67.0.3396.62(+)
运行节点应用程序
node--inspect brk=0.0.0.0:9229 server.js(服务器js文件名)
在chrome中浏览应用程序,例如“localhost:port”打开DevTools。单击响应设备图标旁边的节点图标。
将出现另一个DevTools窗口,专门用于调试节点应用程序。
有很多方法可以调试,但我更喜欢使用内置的调试器(按节点js)。
app.js文件
var fs = require('fs');
fs.readFile('test.txt', 'utf8', function (err, data) {
debugger;
if (err) throw err;
console.log(data); });
命令:node-debug app.js
Node.js 0.3.4+版本具有内置调试支持。
节点调试脚本.js
手册:http://nodejs.org/api/debugger.html
我为那些不知道从哪里开始使用节点检查器的人编写了一个简短的Node.js调试入门。