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

javascript node.js debugging google-chrome-devtools

499244 观看

30回复

16198 作者的声誉

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

现在我主要使用这样的打印语句进行警报调试

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

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

作者: Fabian Jakobs 的来源 发布者: 2009 年 12 月 15 日

回应 (30)


230

16198 作者的声誉

决定

作为Google Chrome开发人员工具的一部分发布的V8调试器可用于调试Node.js脚本。可以在Node.js GitHub wiki中找到有关其工作原理的详细说明。

作者: Fabian Jakobs 发布者: 29.03.2010 08:57

1218

12689 作者的声誉

节点检查员可以节省一天!在任何支持WebSocket的浏览器中使用它。断点,分析器,实时编码等......真的很棒。

安装它:

npm install -g node-inspector

然后运行:

node-debug app.js
作者: daralthus 发布者: 15.10.2010 05:17

86

907 作者的声誉

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

node debug script.js

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

作者: JulianW 发布者: 16.01.2011 01:20

9

46608 作者的声誉

Node.js中有内置的命令行调试器客户端。Cloud 9 IDE也有非常好的(可视)调试器

作者: yojimbo87 发布者: 11.03.2011 07:29

6

865 作者的声誉

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

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

作者: Baryon Lee 发布者: 08.03.2012 01:46

53

13443 作者的声誉

我个人使用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评论 - 使用实时模板,您还可以获得代码段支持。
作者: isNaN1247 发布者: 03.05.2012 02:42

6

5142 作者的声誉

假设您的计算机上安装了node-inspector(如果没有,只需键入'npm install -g node-inspector'),您只需运行:

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

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

作者: Shaheen Ghiassy 发布者: 29.04.2013 01:20

696

31150 作者的声誉

调试

剖析

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

Heapdumps

Flamegraphs

追踪

记录

输出调试信息的库

增强堆栈跟踪信息的库

标杆

其他

遗产

这些用于工作但不再维护或不再适用于现代节点版本。

作者: balupton 发布者: 12.05.2013 09:37

37

58903 作者的声誉

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

截图

作者: Sindre Sorhus 发布者: 14.05.2013 10:21

8

3028 作者的声誉

我为使用node-inspector的人编写了一个简短的Node.js调试入门,以帮助那些不知道从哪里开始的人。

作者: Josh Habdas 发布者: 21.11.2013 06:31

5

29170 作者的声誉

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

http://www.nodeclipse.org/img/Nodeclipse-1-debugging.png

Nodeclipse在2013年Eclipse十大新插件中名列第一。它使用经过修改的V8调试器(来自Google Chrome Developer Tools for Java)。

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

作者: Paul Verest 发布者: 02.01.2014 05:24

6

1567 作者的声誉

只是为了完整性:

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

作者: Alex 发布者: 05.02.2014 01:27

22

1084 作者的声誉

Visual Studio 2012或2013的Node.js工具包括一个调试器。这里的概述声明“用于Visual Studio的Node.js工具包括对调试节点应用程序的完全支持。” 作为Node.js的新手,但有.NET背景,我发现这是一个调试Node.js应用程序的好方法。

作者: John81 发布者: 02.05.2014 12:30

2

17506 作者的声誉

node-debug -p 8888 scriptFileName.js
作者: matt burns 发布者: 07.05.2014 03:53

10

129 作者的声誉

我创建了一个名为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()
作者: BlaineSch 发布者: 09.12.2014 03:22

13

474 作者的声誉

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

作者: Uchiha Itachi 发布者: 30.03.2015 04:04

3

4193 作者的声誉

使用您喜欢的浏览器调试器调试小型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和中提琴:在浏览器中调试。

作者: Gerold Meisinger 发布者: 14.05.2015 06:20

19

1411 作者的声誉

我写了一个不同的方法来调试Node.js代码,这个代码很稳定且非常简单。它可以在https://github.com/sa/iron-node上找到

在此输入图像描述

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

安装:

npm install iron-node -g;

调试:

iron-node yourscript.js;

作者: Stephan Ahlf 发布者: 19.07.2015 03:10

4

21197 作者的声誉

IntelliJ非常适合Node.js.

此外,IntelliJ还支持“代码帮助”。

作者: 卢声远 Shengyuan Lu 发布者: 05.08.2015 03:34

20

819 作者的声誉

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

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

作者: hans 发布者: 09.09.2015 12:08

34

1711 作者的声誉

这里有很多很棒的答案,但我想添加我的观点(基于我的方法如何演变)

调试日志

让我们面对它,我们都喜欢一个好的console.log('Uh oh, if you reached here, you better run.'),有时候它会很好用,所以如果你不愿意离它太远,至少可以通过Visionmedia的调试为你的日志添加一些金光闪闪。

交互式调试

像控制台日志记录一样方便,为了专业调试,你需要卷起袖子并陷入困境。设置断点,逐步执行代码,检查范围和变量,看看是什么导致了这种奇怪的行为。正如其他人所提到的,节点检查员确实是蜜蜂膝盖。它可以使用内置调试器完成所有操作,但使用熟悉的Chrome DevTools界面。如果像我一样使用Webstorm,那么这里有一个方便的调试指南。

堆栈痕迹

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

内存泄漏

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


对于一些有用的文章,请查看

如果你想观看视频那么

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

在此输入图像描述


看看你自己的麻烦并知道
你自己而没有其他人做过这 件事是一件痛苦的事

索福克勒斯,阿贾克斯

作者: Philip O'Brien 发布者: 15.09.2015 03:33

4

9958 作者的声誉

8.1版以来,NetBeans IDE已经支持Node.js :

<...>

新功能亮点

Node.js应用程序开发

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

<...>

其他参考:

  1. NetBeans Wiki / NewAndNoteworthyNB81
  2. NetBeans IDE中的Node.js Express App,Geertjan-Oracle
作者: Sergey Brunov 发布者: 24.11.2015 08:26

59

1257 作者的声誉

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

VS Code提供了与VS,Eclipse等其他IDE相似的调试体验。

在此输入图像描述 在此输入图像描述

作者: Shreyas 发布者: 19.02.2016 10:21

6

985 作者的声誉

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

作者: OneMoreQuestion 发布者: 25.07.2016 07:13

164

11241 作者的声誉

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

节点内置GUI调试器

只需传递检查员标志,您将获得检查员的URL:

node --inspect server.js

你也可以通过传球--inspect-brk来打破第一线。

要自动打开Chrome窗口,请使用inspect-process模块。

# install inspect-process globally
npm install -g inspect-process

# start the debugger with inspect
inspect script.js
作者: Alister Norris 发布者: 14.09.2016 02:51

4

9050 作者的声誉

有很多种可能性......

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

作者: cmd 发布者: 21.01.2017 06:13

9

314 作者的声誉

Visual Studio Code将在调试时适用于我们。

作者: Surendra Parchuru 发布者: 15.10.2017 10:02

6

2940 作者的声誉

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

node --inspect index.js

然后chrome://inspect在chrome中打开。单击“打开专用的DevTools for Node”链接或安装 chrome扩展以轻松打开chrome DevTools。

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

作者: Rahul Kumar 发布者: 09.02.2018 07:05

2

476 作者的声誉

使用此命令

DEBUG_LEVEL=all node file.js
DEBUG=* node file.js
node file.js --inspect
作者: Zahirul Haque 发布者: 24.03.2018 01:51

10

286 作者的声誉

使用Chrome版本67.0.3396.62(+)

  1. 运行节点应用

node --inspect-brk = 0.0.0.0:9229 server.js(server js filename)

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

在此输入图像描述

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

在此输入图像描述

作者: babidi 发布者: 04.06.2018 12:21
32x32