本文共 4084 字,大约阅读时间需要 13 分钟。
如何调试服务器应用程序?
现在,我主要使用带有以下打印语句的警报调试 :
sys.puts(sys.inspect(someVariable));
必须有更好的调试方法。 我知道有一个命令行调试器。 该调试器也可用于Node.js吗?
我个人使用因为它是我发现的唯一一个对前端和后端都非常的JavaScript IDE。
它可以在多个操作系统上运行,并具有内置的Node.js调试功能(以及大量其他功能)( )。
我唯一的“问题” /愿望清单项目 是 分别是 :
假设您已在计算机上安装了节点检查器(如果没有,只需键入“ npm install -g节点检查器”),则只需运行:
node-inspector & node --debug-brk scriptFileName.js
并将URI从命令行粘贴到WebKit(Chrome / Safari)浏览器中。
node --prof ./app.js
node --prof-process ./the-generated-log-file
输出调试信息的库
增强堆栈跟踪信息的库
ab -n 100000 -c 1 http://127.0.0.1:9778/
这些用于工作,但不再维护或不再适用于现代节点版本。
是Adobe研究的一个项目,它使您可以在其开源编辑器调试Node.js代码。 它具有一些有趣的功能,例如实时代码覆盖,追溯检查,异步调用树。
对于那些不确定从哪里开始的人,我整理了一个简短的如何使用 。
有一个新的开源项目(作为Eclipse插件或 ):
Nodeclipse在排名第一。 它使用了经过修改的调试器(来自Google Chrome开发者工具Java)。
Nodeclipse是免费开源软件。
仅出于完整性考虑:
。
2012或2013的包含调试器。 的概述指出“用于Visual Studio的Node.js工具包括对调试节点应用程序的完整支持。”。 作为Node.js的新手,但在.NET中有背景,我发现此插件是调试Node.js应用程序的好方法。
作为Google 一部分发布的调试器可用于调试Node.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: -> 10fizz = new FizzBuzz()fizz.run()
如果您使用的是 ,则可以安装node-debugger
软件包。
使用您喜欢的浏览器调试器调试小型Node.js脚本的快捷方法是使用browserify 。 请注意,这种方法不适用于需要本机I / O库的任何应用程序,但是对于大多数小型脚本而言,它已经足够了。
$ npm install -g browserify
现在将您所有的var x = requires('x')
调用移至requires.js
文件并运行:
$ browserify requires.js -s window -o bundle.js
(这里的缺点是,你要么必须移动或发表意见requires
在您的所有文件。)
像这样在HTML文件中包含bundle.js
:
现在,将文件加载到浏览器中,然后按F12键和中提琴:在浏览器中调试。
我编写了另一种方法来调试Node.js代码,该方法稳定且极其简单。 可从 。
开源的跨平台可视调试器。
安装:
npm install iron-node -g;
调试:
iron-node yourscript.js;
对于Node.js的工作非常出色。
此外,IntelliJ还很好地支持“代码协助”。
具有非常好的Node.js调试支持。 它是免费,开放源代码和跨平台的,可在Linux,OS X和Windows上运行。
如果需要,您甚至可以调试 。
这里有很多不错的答案,但是我想补充一下我的观点(根据我的方法如何发展)
面对现实,我们都喜欢一个好的console.log('Uh oh, if you reached here, you better run.')
有时效果很好,所以如果您不愿离开它太远,至少可以添加使用为您的日志 。
与控制台日志记录一样方便,要进行专业的调试,您需要袖手旁观并陷入困境。设置断点,单步执行代码,检查范围和变量,以查看导致异常行为的原因。 正如其他人提到的那样, 实际上就是蜜蜂的膝盖。 它使用内置的调试器可以完成您可以做的所有事情,但是使用熟悉的Chrome DevTools界面。 如果像我一样使用Webstorm ,那么是从进行调试的便捷指南。
默认情况下,我们无法跟踪事件循环(刻度)不同周期中的一系列操作。 要解决这个问题,请看看 (但不在生产中!)。
使用Node.js,我们可以使服务器进程保持相当长的时间。 如果您认为它冒出了一些令人讨厌的漏洞,该怎么办? 使用和Chrome DevTools比较一些快照,看看有什么变化。
有关一些有用的文章,请查看
如果您想观看视频,则
无论选择哪种方式,只要确保您了解调试方式即可
这是一件痛苦的事
看自己的麻烦并知道 你自己,没有别人做到Sophocles,阿贾克斯
从 , IDE就已经支持Node.js了:
<...>
新功能亮点
Node.js应用程序开发
- 新的Node.js项目向导
- 新的Node.js Express向导
- 增强的JavaScript编辑器
- 对运行Node.js应用程序的新支持
- 调试Node.js应用程序的新支持。
<...>
其他参考:
我会选择进行调试。 没有安装任何工具或npm install
东西的开销。 只需在package.json中设置应用程序的起点,VSCode就会在您的解决方案内部自动创建配置文件。 它建立在之上,像Atom这样的编辑器也建立在上。
VS Code提供了与其他IDE(例如VS,Eclipse等)类似的调试体验。
使用Webstorm! 非常适合调试Node.js应用程序。 它具有内置的调试器。 在此处查看文档: :
可以节省一天! 从支持任何浏览器中使用它。 断点,事件探查器,实时编码等,这真的很棒。
通过以下方式安装:
npm install -g node-inspector
然后运行:
node-debug app.js
只需传递检查器标志,您将获得指向检查器的URL:
node --inspect server.js
您也可以通过传递--inspect-brk
代替第一行。
有很多可能性...
调试支持通常使用或更新的 。
将在调试中为我们工作。
Node.js版本0.3.4+具有内置调试支持。
node debug script.js
手册: :
使用--inspect标志启动节点进程。
node --inspect index.js
然后在chrome中打开chrome://inspect
。 点击“打开用于节点的专用DevTools”链接或安装 chrome扩展程序,以轻松打开chrome DevTools。
有关更多信息,请参考链接
使用此命令
DEBUG_LEVEL=all node file.jsDEBUG=* node file.jsnode file.js --inspect
使用Chrome版本67.0.3396.62(+)
节点--inspect-brk = 0.0.0.0:9229 server.js(服务器js文件名)
将会弹出另一个DevTools窗口,专门用于调试节点应用程序。
Node.js中有内置的命令行 。 Cloud 9 IDE也具有相当不错的(可视) 。
ndb是由Chrome DevTools支持的Node.js改进的调试体验
如果您需要功能强大的Node.js日志记录库,那么是一个更好的选择。
它输出带有时间戳,文件名,方法名,行号,路径或调用堆栈的日志消息,支持颜色控制台,并轻松支持数据库,文件,流传输。 我是作者。
转载地址:http://obdnb.baihongyu.com/