如何调试Node.js应用程序?内置的
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何调试Node.js应用程序?内置的相关的知识,希望对你有一定的参考价值。
如何调试Node.js服务器应用程序?
现在我主要使用这样的打印语句进行警报调试:
sys.puts(sys.inspect(someVariable));
必须有更好的调试方法。我知道Google Chrome有一个命令行调试器。这个调试器也可用于Node.js吗?
node-inspector可以拯救这一天!在任何支持WebSocket的浏览器中使用它。断点,分析器,实时编码等......真的很棒。
安装它:
npm install -g node-inspector
然后运行:
node-debug app.js
Node.js Tools for Visual Studio 2012或2013包含一个调试器。 here概述“用于Visual Studio的Node.js工具包括对调试节点应用程序的完全支持。”作为Node.js的新手,但有.NET背景,我发现这是一个调试Node.js应用程序的好方法。
Visual Studio Code有非常好的Node.js调试支持。它是免费的,开源的和跨平台的,可在Linux,OS X和Windows上运行。
你甚至可以调试grunt and gulp tasks,如果你需要...
我写了一个不同的方法来调试Node.js代码,这个代码很稳定且非常简单。它可以在https://github.com/s-a/iron-node上找到。
一个开源的跨平台可视化调试器。
安装:
npm install iron-node -g;
调试:
iron-node yourscript.js;
如果您使用的是Atom IDE,则可以安装node-debugger
软件包。
我创建了一个名为pry.js的简洁小工具,可以帮助你。
在代码中的某处放置一个简单的语句,正常运行脚本,节点将暂停当前线程,使您可以访问所有变量和函数。随意查看/编辑/删除它们!
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()
使用Chrome版本67.0.3396.62(+)
- 运行节点应用
node --inspect-brk = 0.0.0.0:9229 server.js(server js filename)
- 在Chrome中浏览您的应用,例如“本地主机:端口”
- 打开DevTools。
- 单击响应设备图标旁边的节点图标。
将会有另一个DevTools窗口专门用于调试节点应用程序。
Node.js中有内置的命令行debugger client。 Cloud 9 IDE也非常好(视觉)debugger。
Visual Studio Code将为我们的调试工作。
我为了那些不知道从哪里开始的人使用Node.js debugging primer放了一个短的node-inspector。
如果你需要一个强大的Node.js日志库,Tracer https://github.com/baryon/tracer是一个更好的选择。
它输出带有时间戳,文件名,方法名,行号,路径或调用堆栈,支持颜色控制台以及支持数据库,文件,流传输的日志消息。我是作者。
调试
剖析
node --prof ./app.js
node --prof-process ./the-generated-log-file
Heapdumps
Flamegraphs
追踪
记录
输出调试信息的库
增强堆栈跟踪信息的库
标杆
- Apache Bench:
ab -n 100000 -c 1 http://127.0.0.1:9778/
- wrk
其他
遗产
这些用于工作但不再维护或不再适用于现代节点版本。
- https://github.com/bnoordhuis/node-profiler - 由内置调试取代
- https://github.com/c4milo/node-webkit-agent - 由节点检查员替换
- https://nodetime.com/ - 已解散
假设您的计算机上安装了node-inspector(如果没有,只需键入'npm install -g node-inspector'),您只需运行:
node-inspector & node --debug-brk scriptFileName.js
并将URI从命令行粘贴到WebKit(Chrome / Safari)浏览器中。
只是为了完整性:
以上是关于如何调试Node.js应用程序?内置的的主要内容,如果未能解决你的问题,请参考以下文章
青训营Node.js基础 - Web应用开发 - 开发调试 - 线上部署