如何调试Node.js服务器应用程序?
现在,我主要使用如下打印语句的警报调试:
sys.puts(sys.inspect(someVariable));
必须有更好的调试方法。我知道Google Chrome有一个命令行调试器。这个调试器也适用于Node.js吗?
如何调试Node.js服务器应用程序?
现在,我主要使用如下打印语句的警报调试:
sys.puts(sys.inspect(someVariable));
必须有更好的调试方法。我知道Google Chrome有一个命令行调试器。这个调试器也适用于Node.js吗?
当前回答
使用IDE
在WebStorm中,您只需打开package.json文件,然后从那里以DEBUG模式运行脚本。只需单击侧面的绿色播放按钮。
带有--检查
如果要在没有IDE的情况下直接从CLI调试应用程序,那么可以运行类似node index.js--inspect的脚本。默认情况下,它将侦听端口5858,允许您连接调试器。或者,您可以使用--inspect=55858指定不同的端口。
带有环境变量
创建一个脚本myInspector.js,如下所示:
let inspector = require("inspector");
// you could explicitly specify a port.
// or alternatively set it to 0 to get any available port.
const port = 0;
inspector.open(port, undefined, true);
// print the url which also reveals the port.
const url = inspector.url()
console.log(url);
设置环境变量NODE_OPTIONS=“--requiremyInspector.js”启动脚本。
事实上,这也是WebStorm注入检查器的方式。美妙之处在于,无论您使用哪种发射器,它都能正常工作。所以你可以跑。。。,节点ts。。。或者甚至使用一些.sh/.bat文件。
其他回答
我创建了一个名为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()
调试
Joyent指南调试器节点检查器Visual Studio代码云9括号
分析
节点--教授/应用程序.jsnode—prof进程/生成的日志文件
堆转储
使用Chrome开发者工具的节点堆转储
火焰图
0倍jam3/devtool然后是Chrome开发者工具火焰图Dtrace和StackVis-仅在SmartOS上受支持临床医师
跟踪
使用TraceGL的交互式堆栈跟踪
登录中
输出调试信息的库
毛虫示踪剂潦草
增强堆栈跟踪信息的库
朗约翰
标杆管理
Apache工作台:ab-n 100000-c 1http://127.0.0.1:9778/wrk公司
另外
查出优势家伙Google跟踪框架保罗·爱尔兰指南
遗产
这些功能可以使用,但不再维护或不再适用于现代节点版本。
https://github.com/bnoordhuis/node-profiler-替换为内置调试https://github.com/c4milo/node-webkit-agent-由节点检查器替换https://nodetime.com/-失效
如果您需要Node.js的强大日志库,Tracerhttps://github.com/baryon/tracer是更好的选择。
它输出带有时间戳、文件名、方法名、行号、路径或调用堆栈的日志消息,支持颜色控制台,并轻松支持数据库、文件和流传输。我是作者。
使用node js的VS代码开发人员专用。启用内置调试
文件>首选项>设置>在搜索框中键入“自动附加”并设置调试器应如何附加[仅首选项WithFlag]
说魔术,你应该看到
使用--inspect您应该与代码一起运行节点程序:)
提示:您也可以在没有--inspect的情况下运行,方法是启用始终筛选
我编写了一种不同的方法来调试Node.js代码,它非常稳定且非常简单。可在https://github.com/s-a/iron-node.
一个开源的跨平台可视化调试器。
安装:
npm安装铁节点-g;
调试:
铁节点yourscript.js;