javascript vscode调试node - 我如何调试Node.js应用程序?




debug使用 'debug' (25)

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

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

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

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


Answers

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

你甚至可以调试咕噜和吞咽任务 ,如果你需要......



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


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

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

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


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



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

只需通过检查员标志,您就可以获得检查员的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





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

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

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


node-debug -p 8888 scriptFileName.js

如果你需要一个功能强大的Node.js日志库, Tracer是一个更好的选择。

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


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

node --inspect index.js

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

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



我个人使用JetBrains WebStorm,因为它是我发现的唯一适用于前端和后端JavaScript的JavaScript IDE。

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

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

  1. 在Mac上,它似乎比Windows更耗资源 它在版本6中不再是问题。
  2. 如果它具有代码片段支持(如Sublime Text 2的那些支持) - 即键入'fun'并点击'tab'来放入一个函数,那将会很好。 请参阅下面的@WickyNilliams评论 - 使用Live Templates,您也​​可以使用代码片段支持。

使用这个命令

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

IntelliJ对Node.js有着奇妙的作用。

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


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

$ npm install -g browserify

现在将所有var x = requires('x')调用移入一个requires.js文件并运行:

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

(这里的缺点是你必须移动或注释所有文件中的需求。)

bundle.js包含在HTML文件中,如下所示:

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

现在在您的浏览器中加载文件,然后按F12和中提琴:在浏览器中调试。




调试

剖析

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

Heapdumps

Flamegraphs

追踪

记录

输出调试信息的库

增强堆栈跟踪信息的库

标杆

其他

遗产

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


#HTML页面重定向使用jQuery / JavaScript

试试这个示例代码:

function YourJavaScriptFunction()
{
    var i = $('#login').val();
    if (i == 'login')
        window.location = "login.php";
    else
        window.location = "Logout.php";
}

如果你想提供一个完整的URL作为window.location = "www.google.co.in";







javascript node.js debugging google-chrome-devtools