摘要: 相信大家看完 @不四 的 Node.js 异步异常的处理与domain模块解析 后,已经对domain 模块有了更深一步了解了。本次分享主要介绍一下使用 graceful 配合 cluster 和 pm 实现当发生 uncaughtException 的时候优雅退出(graceful exit)。Cluster官方cluster模块的例子原型代码来自: Warning: Don’t Ignore Errors!graceful 的默认示例是基于 cluster 写的: connect with cluster example一般地,我会将代码结构分为3个文件: dispatch.js: mas 阅读全文
posted @ 2013-06-07 11:20 MK2 阅读(1581) 评论(0) 推荐(0) 编辑
摘要: 在遇到 Blanket.js 之前,我一直使用这 jscover 来做代码覆盖率测试。jscover使用 jscover ,好处是不需要编译,直接使用 java 版本;缺点是需要 java 环境依赖。通过 Makefile 来驱动整个测试执行,如 urllib/MakefileTESTS = test/*.test.jsREPORTER = specTIMEOUT = 20000JSCOVERAGE = ./node_modules/jscover/bin/jscovertest: @NODE_ENV=test ./node_modules/mocha/bin/mocha \ --re... 阅读全文
posted @ 2013-06-07 11:16 MK2 阅读(1516) 评论(0) 推荐(0) 编辑
摘要: 之前经常有同学会问到怎么有些异常无法捕获到呢?虽然 connect 已经在 handler 外层加了 try catch ,还是无法捕获异步调用中产生的异常。现状例如最简单的 helloworld.js 代码var connect = require('connect');var app = connect().use(function (req, res, next) { if (req.url === '/sync_error') { throw new Error('sync error'); } if (req.url === ' 阅读全文
posted @ 2012-12-27 12:25 MK2 阅读(1979) 评论(0) 推荐(0) 编辑
摘要: 问题 一篇#2011-003 multiple implementations denial-of-service via hash algorithm collision 文章,引起了 Web 应用安全领域的骚动。 这种hash算法冲突的原理到底是什么?可以看看一下两篇以PHP为例子的说明文章: PHP数组的Hash冲突实例 , Supercolliding a PHP array 关于... 阅读全文
posted @ 2012-01-01 00:49 MK2 阅读(1014) 评论(4) 推荐(0) 编辑
摘要: Node.js is Cancer show a wrong way to use nodejs.But the test code Fibonacci is so funny.I implement the fibonacci function in other Dynamic Languages for comparison testing. Languages Dynamic nod... 阅读全文
posted @ 2011-12-14 22:21 MK2 阅读(1684) 评论(2) 推荐(1) 编辑
摘要: forever A simple CLI tool for ensuring that a given script runs continuously (i.e. forever).一个非常简单的CLI工具,让你的程序持续运行。 安装forever: https://github.com/nodejitsu/forever $ [sudo] npm install forever -g ... 阅读全文
posted @ 2011-11-23 02:33 MK2 阅读(4078) 评论(0) 推荐(0) 编辑
摘要: 疑问 按nodejs官方的文档说明,使用Buffer操作字节流通常会比转化成String要高效。实际情况全都是这样的吗?本文通过一个简单的解析HTTP Request Header实例来解开此疑问。 HTTP Request Header Demo POST /foo HTTP/1.1\r\n Host: foo.example.com\r\n Content-Length: 5\r\n C... 阅读全文
posted @ 2011-11-19 01:21 MK2 阅读(5388) 评论(0) 推荐(0) 编辑
摘要: 新版本 nodejs 性能 node0.6.0 已经发布了,性能提高如何呢?本文将记录 nodejs 历史更新中所有版本的hello world性能测试。 测试环境 $ uname -a Linux xxx 2.6.18-164.el5 #1 SMP Tue Aug 18 15:51:48 EDT 2009 x86_64 x86_64 x86_64 GNU/Linux $ cat /pro... 阅读全文
posted @ 2011-11-17 00:08 MK2 阅读(1622) 评论(0) 推荐(0) 编辑
摘要: 使用方法 @mashihua 同学在cnode新闻组发布了他维护的npm镜像源,速度很快! 以下是邮件内容: 很高兴的通知大家。在周末的空闲时间里,我们搭建了一个镜像的npm资源库,服务器在日本的Linode上。大家可用下面的命令来安装npm的模块: $ npm --registry "http://npm.hacknodejs.com/" install express 或下面的命令... 阅读全文
posted @ 2011-11-16 16:05 MK2 阅读(3465) 评论(0) 推荐(2) 编辑
摘要: Change logs 完全基于Connect,提高整体响应性能; 移除对express, libxml2的依赖; Session使用Mongodb存储; NodeBlog 介绍 A blog base on nodejs. Demo: http://nodeblog.org, http://nodeblog.cnodejs.net Features Write, Read, Li... 阅读全文
posted @ 2011-11-15 00:54 MK2 阅读(646) 评论(0) 推荐(0) 编辑
摘要: 实例化解析: function Foo() {}; var foo = new Foo(); foo.__proto__ === Foo.prototype; foo.__proto__.__proto__ === Object.prototype; foo.__proto__.__proto__.__proto__ === null; foo.prototype === undefined;... 阅读全文
posted @ 2011-11-02 15:02 MK2 阅读(513) 评论(0) 推荐(0) 编辑
摘要: @Cnodejs社区的NAE 目前正在邀请内测中,目前已经增加自定义域名绑定。 只需在package.json文件中指定customHost属性即可。 例如我需要绑定nae.nodeblog.org => nodeblog.cnodejs.net ,只需在package.json增加一行即可: "customHost": "nae.nodeblog.org" 阅读全文
posted @ 2011-10-27 02:29 MK2 阅读(632) 评论(0) 推荐(0) 编辑
摘要: 本文收集我个人编译的一些离线文档 nodedoc.0.5.4.zip 阅读全文
posted @ 2011-08-17 11:35 MK2 阅读(1613) 评论(0) 推荐(0) 编辑
摘要: 内存限制 大文件读写操作,由于内存限制问题,不要直接使用fs.readFile 和 fs.writeFile。 必须使用fs.ReadStream 和 fs.WriteStream 来对文件进行读写操作。 fs.ReadStream:上传大文件 var urlparse = require('url').parse , http = require('http') , fs = require('... 阅读全文
posted @ 2011-08-16 12:19 MK2 阅读(12174) 评论(1) 推荐(4) 编辑
摘要: 问题 Nodejs原生的http.request 方法是不支持设置超时参数的,而网络请求经常会遇到超时的情况,特别是对于外部网络,如果不处理超时,发起的请求将会一直卡主,消耗的系统资源也不能及时被释放。 解决方案(旧) 定时器:通过定时器,当timeout事件触发的时候,主动调用req.abort() 终止请求,然后返回超时异常。 Request Timeout & Response Ti... 阅读全文
posted @ 2011-08-09 21:30 MK2 阅读(13028) 评论(0) 推荐(1) 编辑