nodejs调试工具node-inspector入门随笔
最近打算玩玩node。
众所周知,在前端,调试代码有一众天然好工具——浏览器!特别是 chrome,使得 jser 们如鱼得水,玩得风生水起。但是到了node,情况就不一样了,js 代码不再运行在单纯的浏览器中,而是直接运行在操作系统里,摇身一变成为了一等公民。从此,这node下的js与浏览器就不再是难兄难弟分不开,而是牛郎与织女,中间隔着一条大银河!
几年前有同事使用nodejs写了一个邮件服务反向代理,做一些分发和细微处理。用户量不大也不小,但是经常crash。好在node事件机制比较完善,down掉之后能及时重启,所以用起来效果还挺不错。当时同事调试代码主要用node-webkit,我也试用过,挺不错!就好像在浏览器中调试一样,而且可以读写文件,做一等编程语言公民才能做的事,很开生!
最近看到有同事使用node-inspector调试,熟悉的界面,跟node-webkit差不多。不过我想既然有node-webkit了,又出个node-inspector,肯定有不一样的地方!抱着这样的好奇心,我开始了折腾node-inspector。
由于是用mac办公,电脑上有现成的node。只需要 homebrew install node-inspector,啪……不一会儿就装好了。node-inspector -v,啪!v.0.12.4。然后就是例行的hello world!,如下:
var http = require('http');
var port = 8080;
var fs = require('fs'); http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(port, '127.0.0.1'); console.log('Server running at http://127.0.0.1:' + port + '/');
感觉很不错,按说明,先执行
$ node-inspector
再执行
$ node --debug-brk server.js
按照上面执行 node-inspector 的说明,在浏览器中打开
http://127.0.0.1:8080/?ws=127.0.0.1:8080&port=5858
执行调试。复制粘贴啪!GOOD!调试界面出来了,很顺利。
兴奋之余,不由自主地刷新了几次浏览器,一闪……一闪……一闪,终究是没有闪出来,页面一片空白!
很伤心!我觉得可能是端口被别的程序给占用了,用tcp命令查看,发现没有程序占用啊。打开浏览器开发工具,发现了几处错误,是跟RunTime……相关的问题,于是把错误复制狠狠google。果不其然,网上早已有同行在讨论这个错误了!
有的是把浏览器的一些个扩展禁用掉就好了
有的是把chrome用一些控制参数(太复杂也不知道怎么弄)启动就好
有的说node和node-inspector的版本不对
更有甚者,说homebrew安装的可能和npm安装的不同……
我一一试验,没有一个成功的。把同事电脑上的node-inspector拷贝过来,同样也不行。再后来我精疲力竭,就搁置了。
与这样好一个调试工具无缘,我是坚决不允许这种情况发生的!
于是今天晚上我又开始了折腾。重启几次之后,发现每次重启之后第一次在浏览器中打开是可以的,但是往后就不行。这一次,我是清醒的!于是我琢磨换个端口,有可能跟node-inspector的8080冲突了。于是我改成如下:
var http = require('http');
var port = 8000;
var fs = require('fs'); http.createServer(function (req, res) {
res.writeHead(200, {'Content-Type': 'text/plain'});
res.end('Hello World\n');
}).listen(port, '127.0.0.1'); console.log('Server running at http://127.0.0.1:' + port + '/');
停止sever再启动,刷新浏览器。第一次像往前一样是成功的,刷新,nice!总算成功了!暂时还不清楚深层次的原因,夜深了就改天再研究了!在这里记录下这一激动人心的时刻!
nodejs调试工具node-inspector入门随笔的更多相关文章
- 快捷使用Node Inspector调试NodeJS
一:介绍 NodeJS开发有很多种调试方式,比如输出Log.WebStorm自带的调试器.Node Inspector等,其中Node Inspector是比较流行和被推荐的一种. 但是Node In ...
- nodejs 使用Google浏览器进行可视化调试——Node Inspector工具
1.npm安装Node Inspector工具,全局安装 命令行执行npm install -g node-inspector 2.启动Node Inspector工具,命令行执行 node-insp ...
- Node.js 入门手册:那些最流行的 Web 开发框架
这篇文章与大家分享最流行的 Node.js Web 开发框架.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用程序,编 ...
- 让我们一起学习《Node.js入门》一书吧!
Node.js入门 读完本书之后,你将完成一个完整的web应用,该应用允许用户浏览页面以及上传文件. 里面对一些知识的讲解,让你略窥Node.js的门径.最好一段代码一段代码的写下来,我的习惯是手里拿 ...
- node-debug 三法三例之node debugger + node inspector
大家对nodejs调试应该都比较头疼,至少我这个不用IDE写js的人很头疼这个,其实node的生态圈非常好 有非常好的工具和非常潮的开发方式 这里总结了3法3例,希望能对大家有所帮助 文档地址 ht ...
- Node.js入门实例程序
在使用Node.js创建实际“Hello, World!”应用程序之前,让我们看看Node.js的应用程序的部分.Node.js应用程序由以下三个重要组成部分: 导入需要模块: 我们使用require ...
- Node Inspector 代理实现
本文首发于 https://github.com/whxaxes/blog/issues/9 背景 平时做 node 开发的时候,通过 node inspector 来进行断点调试是一个很常用的 de ...
- windows下nodejs express安装及入门网站,视频资料,开源项目介绍
windows下nodejs express安装及入门网站,视频资料,开源项目介绍,pm2,supervisor,npm,Pomelo,Grunt安装使用注意事项等总结 第一步:下载安装文件下载地址: ...
- Node.js 入门 资源
Node.js 入门 <快速搭建 Node.js 开发环境以及加速 npm> http://fengmk2.com/blog/2014/03/node-env-and-faster-npm ...
- 《Node.js入门》CentOS 6.5下Node.js Web开发环境搭建笔记
近期想尝试一下英特尔的基于WebRTC协同通信开发套件,所以须要在本地搭建Node.js Web的开发測试环境. 这里讲的是CentOS 下的搭建方法.使用Windows的小伙伴请參考: <No ...
随机推荐
- 多行滚动jQuery循环新闻列表代码
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- iis7如何取消目录的可执行权限
我们需要把IIs中某一个目录的可执行权限去掉.这在IIs6中是非常方便的,可是因为iis7的机制小编也找了不少资料才找到. 第一步:先选择需要取消权限的目录,然后在右边可以看到 “处理程序映射” 双击 ...
- linux日志审计项目案例实战(生产环境日志审计项目解决方案)
所谓日志审计,就是记录所有系统及相关用户行为的信息,并且可以自动分析.处理.展示(包括文本或者录像) 推荐方法:sudo配合syslog服务,进行日志审计(信息较少,效果不错) 1.安装sudo命令. ...
- django1.6之mysql配置
# Database# https://docs.djangoproject.com/en/1.6/ref/settings/#databases setting 配置修改 INSTALLED_APP ...
- 实现n皇后问题(回溯法)
/*======================================== 功能:实现n皇后问题,这里实现4皇后问题 算法:回溯法 ============================= ...
- Xcode 调试技巧-b
随着Xcode 5的发布,LLDB调试器已经取代了GDB,成为了Xcode工程中默认的调试器.它与LLVM编译器一起,带给我们更丰富的流程控制和数据检测的调试功能.LLDB为Xcode提供了底层调试环 ...
- Shell编程练习
1.使用case语句 2.使用while....do....done语句 3.使用
- python 内置函数 getattr
class Getattr_Test(): var_a = 'abc' def methodA(self): var_b = 'xyz' return var_b t = Getattr_Test() ...
- 解决在构造函数中使用Session,Session为null的问题
问题描述: public abstract class PageBase : System.Web.UI.Page 在PageBase中如何使用Session??? 我直接用 Session[&quo ...
- google 开放I/O源码
在这款应用程序中谷歌对部分功能.API和设计架构进行了非常详细的阐述,其中包括碎片.程序加载.服务.广播.接收器.警告.通知.SQLite数据库.内容提供商.Action Bar.导航Drawer和G ...