rrestjs - 高性能node.js开发框架


GPL
跨平台
JavaScript

软件简介

rrest.js是一款基于expressjs代码开发的高性能node.js开发框架,由于重新编写了框架组织架构,比expressjs整体性能提升大约10%,实用功能也更加丰富,API和代码风格相比expressjs更简单易懂。

rrestjs有以下几个亮点:
1、Restful模式:
去掉了expressjs的app.get()路由机制,重新拆分客户端请求的uri,直接加载指定模块和执行模块内的方法,如果出错输出500或404。比如用户访问/user/face,访问头像页面,则rrestjs会根据拆分的uri去指定目录require(‘user’)模块,然后执行face方法,省去了正则路由判断,提升性能。
2、原生node.js的API风格:
没有expressjs自己封装的app.use等等,输出一个helloworld只需如下代码,降低了学习新代码风格的成本:
var http = require(‘http’),
rrest = require(‘rrestjs’),
server = http.createServer(rrest(function (req, res) {
res.end(‘hello world’);
})).listen(3000);
3、开发模式自动保存重启: 在开发模式下,支持像PHP那样的写代码,保存自动重启,放弃ctrl+c 然后 上+enter。
4、多进程共享session:
多进程可以共享保存在内存中的session数据,而且以后部署上生产环境,只需加载不同配置文件,无需改动代码即可支持mongodb的session存储
5、提高静态文件输出性能: expressjs在静态文件输出上由于加上etag或last-
modify缓存,需要2次I/O操作,rrestjs在此基础上做了2级缓存,减少一次I/O操作,性能提升10%。
6、多进程多任务管理:
可以让多进程监听多端口,做不同业务,由一个守护进程守护,万一发现子进程意外挂掉,可以马上唤醒它,并且还是继续监听之前的端口和做之前的业务。
7、封装了mongodb连接池: 封装了mongodb的连接池,可以手动的设定连接池的大小,大大提高的效率和稳定性。
8、IP和资源白名单过滤: 增加了白名单功能,方便项目上公网以后的调试和测试。
9、增加jade的html缓存:
增加html缓存功能,加速大并发,高I/O的输出jade模版,同时设置了更新缓存钥匙机制,防止缓存重建时的雪崩情况。
10、增加deflate和gzip: 根据content-
type的属性值,选择性的使用delate或gzip压缩数据响应给客户端,因为图片的gzip意义不大。
11、自动加载模块: 根据自动加载例外的配置,去自动加载modules文件夹下的所有模块,不必一个个require了