如何调试Node.js应用程序?

2020/09/16 10:02 · javascript ·  · 0评论

如何调试Node.js服务器应用程序?

现在,我主要使用带有以下打印语句的警报调试

sys.puts(sys.inspect(someVariable));

必须有更好的调试方法。我知道Google Chrome浏览器有一个命令行调试器。该调试器也可用于Node.js吗?

节点检查器可以节省一天!从支持WebSocket的任何浏览器中使用它断点,事件探查器,实时编码等,这真的很棒。

通过以下方式安装:

npm install -g node-inspector

然后运行:

node-debug app.js

调试

剖析

  1. node --prof ./app.js
  2. node --prof-process ./the-generated-log-file

堆转储

火焰图

追踪

记录中

输出调试信息的库

增强堆栈跟踪信息的库

标杆管理

其他

遗产

这些功能可以正常工作,但不再维护或不再适用于现代节点版本。

作为Google Chrome开发者工具的一部分发布V8调试器可用于调试Node.js脚本。有关如何工作的详细说明,请参见Node.js GitHub Wiki

从6.3版开始,Node拥有自己的内置 GUI调试器(使用Chrome的DevTools)

节点内置GUI调试器

只需传递检查器标志,您就会获得一个指向检查器的URL:

node --inspect server.js

您也可以通过传递第一行来--inspect-brk代替。

Node.js版本0.3.4+具有内置调试支持。

node debug script.js

手册:http//nodejs.org/api/debugger.html

Visual Studio Code将是我进行调试的选择。没有安装任何工具或npm install东西的开销只需在package.json中设置应用程序的起点,VSCode就会在您的解决方案内部自动创建配置文件。它建立在Electron之上,像Atom这样的编辑器也建立在Electron之上。

VS Code提供了与其他IDE(例如VS,Eclipse等)类似的调试体验。

在此处输入图片说明
在此处输入图片说明

我个人使用JetBrains WebStorm,因为它是我发现的唯一一个对前端和后端JavaScript都非常有用的JavaScript IDE。

它可以在多个操作系统上运行,并具有内置的Node.js调试功能(以及大量其他功能)(http://www.jetbrains.com/webstorm/features/index.html)。

我唯一的“问题” /愿望清单项目 分别是

  1. 在Mac上似乎比Windows占用更多的资源 在版本6中似乎不再是问题。
  2. 如果它具有Snippet支持(例如Sublime Text 2的支持),那就太好了,即键入“ fun”并点击“ tab”以放入一个函数。 请参阅下面的@WickyNilliams评论-使用实时模板,您还将获得摘要支持。

这里有很多不错的答案,但我想补充一下我的观点(根据我的方法如何发展)

调试日志

面对console.log('Uh oh, if you reached here, you better run.')现实吧,我们所有人都喜欢一个好的东西,有时效果很好,所以如果您不愿意远离它,至少可以使用Visionmedia的debug在日志中添加一些亮点

交互式调试

与控制台日志记录一样方便,要进行专业的调试,您需要袖手旁观并陷入困境。设置断点,逐步遍历代码,检查范围和变量,以查看导致异常行为的原因。正如其他人提到的那样,节点检查器实际上就是蜜蜂的膝盖。它使用内置的调试器完成了您可以做的所有事情,但是使用了熟悉的Chrome DevTools界面。如果像我一样使用Webstorm,那么这里是从此处进行调试的便捷指南。

堆栈痕迹

默认情况下,我们无法跟踪事件循环(刻度)不同周期中的一系列操作。要解决这个问题,请看看longjohn(但不在生产中!)。

内存泄漏

使用Node.js,我们可以使服务器进程保持相当长的时间。如果您认为它冒出了一些令人讨厌的漏洞,该怎么办?使用heapdump和Chrome DevTools比较一些快照,看看有什么变化。


有关一些有用的文章,请查看

如果您想观看视频,则

无论选择哪种方式,只要确保您了解调试方式即可

在此处输入图片说明



看着自己的麻烦,知道


自己就是别人,
这是一件痛苦的事

Sophocles,Ajax

us修斯是Adobe研究的一个项目,它使您可以在其开源编辑器Brackets中调试Node.js代码它具有一些有趣的功能,例如实时代码覆盖,追溯检查,异步调用树。

屏幕截图

适用于Visual Studio 2012或2013的Node.js工具包含调试器。这里的概述指出“用于Visual Studio的Node.js工具包括对调试节点应用程序的完整支持。”。作为Node.js的新手,但在.NET中有背景,我发现此插件是调试Node.js应用程序的好方法。

Visual Studio Code具有非常好的Node.js调试支持。它是免费,开放源代码和跨平台的,可在Linux,OS X和Windows上运行。

如果需要,您甚至可以调试grunt和gulp任务

我编写了另一种方法来调试Node.js代码,该方法稳定且极其简单。可从https://github.com/sa/iron-node获得

在此处输入图片说明

开源的跨平台可视调试器。

安装:

npm install iron-node -g;

调试:

iron-node yourscript.js;

如果您使用的是Atom IDE,则可以安装该node-debugger软件包。

使用Chrome版本67.0.3396.62(+)

  1. 运行节点应用

节点--inspect-brk = 0.0.0.0:9229 server.js(服务器js文件名)

  1. 在chrome中浏览您的应用,例如“ localhost:port”
  2. 打开DevTools。
  3. 单击响应设备图标旁边的节点图标。

在此处输入图片说明

将会弹出另一个DevTools窗口,专门用于调试节点应用程序。

在此处输入图片说明

我创建了一个名为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中有内置的命令行调试器客户端Cloud 9 IDE也具有相当不错的(可视)调试器

Visual Studio Code将在调试中为我们工作。

为那些不确定从哪里开始的人整理了一个简短的Node.js调试入门,以使用node-inspector

使用Webstorm!非常适合调试Node.js应用程序。它具有内置的调试器。在此处查看文档:https : //www.jetbrains.com/help/webstorm/2016.1/running-and-debugging-node-js.html

使用--inspect标志启动节点进程

node --inspect index.js

然后chrome://inspect在Chrome中打开点击“打开用于节点的专用DevTools”链接或安装 chrome扩展程序,以轻松打开chrome DevTools。

有关更多信息,请参考链接

如果您需要强大的Node.js日志记录库,那么Tracer https://github.com/baryon/tracer是一个更好的选择。

它输出带有时间戳,文件名,方法名,行号,路径或调用堆栈的日志消息,支持颜色控制台,并轻松支持数据库,文件,流传输。我是作者。

假设您已在计算机上安装了节点检查器(如果没有,只需键入“ npm install -g节点检查器”),则只需运行:

node-inspector & node --debug-brk scriptFileName.js

并将URI从命令行粘贴到WebKit(Chrome / Safari)浏览器中。

仅出于完整性考虑:

PyCharm 3.0 + Node.js的插件提供了一个真棒发展+运行+调试经验

IntelliJ对Node.js的工作非常出色。

此外,IntelliJ还很好地支持“代码协助”。

有很多可能性...

调试支持通常使用v8调试协议或更新的Chrome调试协议来实现

有一个新的开源Nodeclipse项目(作为Eclipse插件或Enide Studio):

Nodeclipse在Eclipse 2013年十大新插件中排名第一它使用了经过修改的V8调试器(来自Google Chrome开发者工具Java版)。

Nodeclipse是每个月初发布的免费开源软件

8.1版开始NetBeans IDE就已经支持Node.js了

<...>

新功能亮点

Node.js应用程序开发

  • 新的Node.js项目向导
  • 新的Node.js Express向导
  • 增强的JavaScript编辑器
  • 对运行Node.js应用程序的新支持
  • 调试Node.js应用程序的新支持。

<...>

其他参考:

  1. NetBeans维基/ NewAndNoteworthyNB81
  2. NetBeans IDE中的Node.js Express应用,Geertjan-Oracle

使用此命令

DEBUG_LEVEL=all node file.js
DEBUG=* node file.js
node file.js --inspect

ndb是由Chrome DevTools支持的Node.js改进的调试体验。

https://github.com/GoogleChromeLabs/ndb

使用您喜欢的浏览器调试器调试小型Node.js脚本的快捷方法是使用browserify请注意,该方法不适用于需要本机I / O库的任何应用程序,但是对于大多数小型脚本而言,它已经足够了。

$ npm install -g browserify

现在,将所有var x = requires('x')呼叫移到一个requires.js文件中并运行:

$ browserify requires.js -s window -o bundle.js

(这里的缺点是您必须移动或评论 requires所有文件中的。)

包括bundle.js在HTML文件中像这样:

<script type="text/javascript" src="bundle.js"></script>

现在,将文件加载到浏览器中,然后按F12和viola:在浏览器中调试。

本文地址:http://javascript.askforanswer.com/ruhediaoshinode-jsyingyongchengxu.html
文章标签: ,   ,   ,  
版权声明:本文为原创文章,版权归 javascript 所有,欢迎分享本文,转载请保留出处!

文件下载

老薛主机终身7折优惠码boke112

上一篇:
下一篇:

评论已关闭!