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

现在我主要使用 警报调试 打印语句如下:

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

一定有更好的调试方法。我知道 谷歌浏览器 有一个命令行调试器。这个调试器也适用于 Node.js 吗?

有帮助吗?

解决方案 3

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

其他提示

节点检查可以保存一天!从任何浏览器支持的WebSocket 使用它。断点,探查,livecoding,等...它是真正真棒。

用安装它:

npm install -g node-inspector

然后运行:

node-debug app.js

调试

分析

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

堆转储

火焰图

追踪

记录

输出调试信息的库

增强堆栈跟踪信息的库

标杆管理

其他

遗产

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

节点都有其自己的内置 GUI调试器的6.3(版本使用Chrome的DevTools )

只要通过检查标志,你会提供一个网址给检查员:

node --inspect server.js

可以在第一行通过使--inspect-brk代替也断裂。

要自动打开一个浏览器窗口中,使用检查过程模块。

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

# start the debugger with inspect
inspect script.js

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

node debug script.js

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

Visual Studio代码 将是我的选择进行调试。安装任何工具或npm install的东西没有任何开销。 刚刚成立的的package.json您的应用程序的出发点和VSCode会自动创建您的解决方案中的配置文件。它是建立在电子,其上比如Atom编辑构建的。

  

VS代码会因为你可能有类似的调试经验   有在其他IDE等VS时,Eclipse等

“在这里输入的图像描述”

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

它可以在多个操作系统上运行,并且内置 Node.js 调试(以及大量其他东西](http://www.jetbrains.com/webstorm/features/index.html).

我唯一的“问题”/愿望清单项目 :

  1. Mac 上似乎比 Windows 上更需要资源 在版本 6 中似乎不再是问题。
  2. 如果它有片段支持(就像 崇高文本2 - IE。输入“fun”并点击“tab”以输入函数。 请参阅下面的 @WickyNilliams 评论 - 使用实时模板,您还可以获得片段支持。

忒修斯是由Adobe的研究项目,它可以让您调试Node.js的代码在自己开源编辑器支架。它有一些有趣的功能,如实时代码覆盖率,追溯检查,异步调用树。

“屏幕截图”

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

调试日志

让我们面对现实吧,我们都喜欢美好的事物 console.log('Uh oh, if you reached here, you better run.') 有时这效果很好,所以如果你不愿意离它太远,至少在你的日志中添加一些闪亮的东西 Visionmedia的调试.

交互式调试

尽管控制台日志记录非常方便,但要进行专业调试,您需要卷起袖子并投入其中。设置断点,单步执行代码,检查范围和变量以查看导致奇怪行为的原因。正如其他人提到的, 节点检查器 真的是蜂膝。它可以完成您可以使用内置调试器执行的所有操作,但使用熟悉的 Chrome DevTools 界面。如果你像我一样使用 网络风暴, , 然后 这里 是一个方便的调试指南。

堆栈跟踪

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

内存泄漏

使用 Node.js,我们可以让服务器进程保持相当长的时间。如果您认为出现了一些令人讨厌的泄密事件,您会怎么做?使用 堆转储 和 Chrome DevTools 来比较一些快照并查看发生了什么变化。


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

如果您想观看视频

无论您选择什么路径,只要确保您了解如何调试即可

enter image description here

这是一件痛苦的事
看看自己的烦恼就知道
你自己而没有其他人成功了

索福克勒斯、阿贾克斯

的Node.js的Visual Studio 2012或2013包括调试工具。 “为Visual Studio包含用于调试节点的应用程序的完整支持Node.js的工具。”概述这里状态。作为新的Node.js,但有在.NET的背景下,我发现这个在添加要调试的Node.js应用的好方法。

Visual Studio代码已经很不错Node.js的调试支持。它是免费的,开源和跨平台运行在Linux,OS X和Windows。

您甚至可以调试呻吟,一饮而尽任务,如果您需要...

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

“在此输入图像的描述”

这是开源跨平台视觉调试器。

安装:

npm install iron-node -g;

调试:

iron-node yourscript.js;

如果您使用的原子IDE ,则可以安装node-debugger

使用 Chrome 版本 67.0.3396.62(+)

  1. 运行节点应用程序

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

  1. 在 Chrome 中浏览您的应用程序,例如“本地主机:端口”
  2. 打开开发工具。
  3. 单击响应设备图标旁边的节点图标。

enter image description here

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

enter image description here

我创建了一个名为 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()

有被内置命令行调试器客户端内Node.js的云9 IDE有也相当不错(视觉)调试器

Visual Studio代码能为我们在调试工作。

我整理了一个短篇 Node.js 调试入门 关于使用 节点检查器 对于那些不确定从哪里开始的人。

使用Webstorm!这是完美的调试Node.js的应用。它有一个内置的调试器。 的https:此处退房文档// WWW .jetbrains.com /帮助/ webstorm / 2016.1 /运行和调试节点-js.html

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

它输出日志消息与时间戳,文件名,方法名,行号,路径,或调用栈,支持颜色控制台,并支持数据库,文件,流传输容易。我是作家。

假设你有你的计算机上安装节点检查(如果没有,只需键入“故宫安装-g节点检查”),你只需要运行:

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

和从命令行粘贴URI成WebKit的(铬/ Safari浏览器)浏览器。

开始与您节点处理 - 检查标志

node --inspect index.js

和然后在铬打开chrome://inspect。点击“打开专用DevTools为节点”链接或安装这个铬扩展容易打开铬DevTools。

有关的详细信息请参阅链路

有很多可能性...

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

有新的开源 结节食 项目(作为 Eclipse 插件或 埃尼德工作室):

Nodeclipse 成为 #1 Eclipse 2013 年 10 大新插件. 。它使用修改后的 V8 调试器(来自 Google Chrome Developer Tools for Java)。

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

的IntelliJ 获得Node.js的奇妙的作品。

此外,支持的IntelliJ '代码帮助' 以及

网豆 IDE 自此开始支持 Node.js 8.1版本:

<...>

新功能亮点

Node.js 应用程序开发

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

<...>

附加参考:

  1. NetBeans Wiki / NewAndNoteworthyNB81.
  2. NetBeans IDE 中的 Node.js Express 应用程序、Geertjan-Oracle.

使用此命令

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

一个快速和肮脏的方式来调试与您最喜爱的浏览器调试小的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 和中提琴:调试浏览器

NDB是Node.js的一种改进的调试经验,由铬DevTools启用

https://github.com/GoogleChromeLabs/ndb

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top