如何调试Node.js服务器应用程序?
现在,我主要使用如下打印语句的警报调试:
sys.puts(sys.inspect(someVariable));
必须有更好的调试方法。我知道Google Chrome有一个命令行调试器。这个调试器也适用于Node.js吗?
如何调试Node.js服务器应用程序?
现在,我主要使用如下打印语句的警报调试:
sys.puts(sys.inspect(someVariable));
必须有更好的调试方法。我知道Google Chrome有一个命令行调试器。这个调试器也适用于Node.js吗?
当前回答
使用node js的VS代码开发人员专用。启用内置调试
文件>首选项>设置>在搜索框中键入“自动附加”并设置调试器应如何附加[仅首选项WithFlag]
说魔术,你应该看到
使用--inspect您应该与代码一起运行节点程序:)
提示:您也可以在没有--inspect的情况下运行,方法是启用始终筛选
其他回答
我将选择Visual Studio代码进行调试。没有安装任何工具或npm安装工具的开销。只需在package.json中设置应用程序的起点,VSCode就会自动在解决方案中创建一个配置文件。它是建立在Electron之上的,像Atom这样的编辑器都是建立在该之上的。
VS Code提供了与您可能拥有的类似的调试经验在其他IDE中,如VS、Eclipse等。
Node.js 0.3.4+版本具有内置调试支持。
节点调试脚本.js
手册:http://nodejs.org/api/debugger.html
这里有很多很好的答案,但我想补充一下我的观点(基于我的方法的演变)
除错记录
让我们面对现实吧,我们都喜欢一个好的console.log(“哦,如果你到了这里,你最好跑一下。”),有时候这很有用,所以如果你不想离开它太远,至少可以通过Visionmedia的调试为你的日志添加一些亮点。
交互式调试
尽管控制台日志记录非常方便,但要进行专业调试,您需要卷起袖子并陷入其中。设置断点,单步执行代码,检查范围和变量,以了解导致这种奇怪行为的原因。正如其他人所提到的,节点检查器实际上是蜜蜂的膝盖。它完成了内置调试器所能做的一切,但使用了熟悉的ChromeDevTools界面。如果像我一样使用Webstorm,那么这里有一个方便的调试指南。
堆栈跟踪
默认情况下,我们无法在事件循环的不同周期(滴答声)中跟踪一系列操作。要解决这个问题,请查看longjohn(但不在生产中!)。
内存渗漏体
使用Node.js,我们可以让服务器进程保持相当长的时间。如果你认为它引发了一些严重的泄漏,你该怎么办?使用heapdump和ChromeDevTools比较一些快照,看看有什么变化。
有关一些有用的文章,请查看
RisingStack-调试Node.js应用程序nearForm的David Mark Clements的优秀文章
如果你想看视频,那么
Netflix JS Talks-调试生产中的Node.JS跟踪工作组关于跟踪和调试node.js的有趣视频关于节点检查器的15分钟视频
无论您选择什么路径,只要确保您了解如何调试
这是一件痛苦的事看看你自己的麻烦你自己和其他人都没有成功索福克勒斯,阿贾克斯
使用网络风暴!它非常适合调试Node.js应用程序。它有一个内置的调试器。查看此处的文档:https://www.jetbrains.com/help/webstorm/2016.1/running-and-debugging-node-js.html
NetBeans IDE从8.1版开始就支持Node.js:
<...>新功能亮点Node.js应用程序开发新建Node.js项目向导新建Node.js Express向导增强的JavaScript编辑器对运行Node.js应用程序的新支持对调试Node.js应用程序的新支持。<...>
其他参考:
NetBeans Wiki/NewAndNoteworthyNB81。NetBeans IDE中的Node.js Express应用程序,Geertjan Oracle。