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 ...
随机推荐
- php中 __autoload函数 自动加载类文件机制
魔术函数,自动加载机制function __autoload($class_name) { //自动传递的是类名$path = str_replace('_', '/', $class_name) ...
- Popen No such file or directory 错误
File , in reload_config stderr=PIPE, env={"PATH": '', "HOME": "/root"} ...
- Python自省学习
1. 访问对象的属性 class MyClass(): a=' b=' def __init__(self): pass def write(self): print self.a,self.b my ...
- 获取iOS设备型号的方法总结
三种常用的办法获取iOS设备的型号: 1. [UIDevice currentDevice].model (推荐): 2. uname(struct utsname *name) ,使用此函数需要#i ...
- 服务器环境搭建系列(一)-Apache篇
一.Apache 1.解压缩tar包httpd-2.2.22.tar.gz,这里默认放在/opt下 tar -zxvf httpd-2.2.22.tar.gz 2.进入解压缩后的文件夹 cd http ...
- BZOJ 3971 Матрёшка 解题报告
很自然想到区间 DP. 设 $Dp[i][j]$ 表示把区间 $[i, j]$ 内的套娃合并成一个所需要的代价,那么有: $Dp[i][i] = 0$ $Dp[i][j] = min\{Dp[i][k ...
- Storm技术结合
http://pan.baidu.com/s/1mhzj5XI?qq-pf-to=pcqq.group#path=%252F
- 服务器部署_nginx报错: [warn] conflicting server name "www.test.com" on 0.0.0.0:80, ignored
今天修改nginx配置文件nginx.conf之后,启动nginx就会报错.经仔细检查是重复配置了 server元素导致, 当nginx检测到重复的 server_name item.test.com ...
- Memcached总结一:memcached简介及适用和不适应场景
Memcached是免费的,开源的,高性能的,分布式内存对象的缓存系统(键/值字典),旨在通过减轻数据库负载加快动态Web应用程序的使用. Memcached是由布拉德·菲茨帕特里克(Brad Fit ...
- Qt中QString,int,char,QByteArray之间相互转换
http://blog.csdn.net/ymc0329/article/details/7284514 int 转 QString int m=1; QString b; b=QString::n ...