rrestjs v0.2版升级文档

rrestjs最近出了0.2版本,做了一些新功能和修复了一些bug。

新增功能是:

1、在自动响应静态文件的基础上增加一个api,使得可以批量加载压缩过的css和js文件,达到减少http请求数和减少流量的效果。

例如:

1
<script src="/static/?parse=/static/demo1.js|/static/demo2.js|/static/demo3.js" ></script>

这样加载js文件会使用ugliyjs进行压缩然后拼装起来,返回给客户端,同时会缓存成一个缓存文件,以备其他用户请求使用,不用每次都去读取文件压缩了。

同时为了防止一些恶意用户,刷我们的缓存,rrestjs做了一些小防备,可以设定最多压缩合并的文件数,同时当其中有某一个文件不存在或不是’css’或’js’时,则会响应500错误给用户,并不会生成缓存。

同样css也会进行压缩处理后合并,所以在使用时顺序比较重要,注意编码定性为:’utf-8’

相关配置详见config.js中的说明:

1
2
3
4
5
6
7
autoStatic:'static',  //自动响应静态文件的uri,比如 http://rrestjs.com/static/rrest.jpg 将会自动响应给客户端,为了加速这里只能设置一级目录
staticFolder:'/example/static', //自动响应静态文件的根目录,比如 http://rrestjs.com/static/rrest.jpg 将返回 baseDir+'/example/static/rrest.jpg'
staticParse:true,//是否开启静态文件压缩整合功能
staticParseName:'parse',//压缩整合功能的名称,例如用户可以'/static/?parse=/index.body.css|/index.user.css|/user.face.css'压缩整合正一个css响应给客户端,js
staticParseCacheTime:1000*60*60,//压缩整合缓存时间,1小时
staticParseCacheFolder:'/example/static/cache',//缓存整合功能的缓存文件夹
staticParseMaxNumber:10,//整合压缩css或js文件的最大上限,建议不要超过15

2、jade模版的分页缓存

之前jade的html缓存是根据jade模版地址做md5处理的,这样会导致一个问题,比如用户输出一个分页的搜索结果jade,被rrestjs缓存为html,但是会造成一个问题,导致分页从第1页到第n页的结果都是一样的。本次版本在输出jade模版时新增加一个参数(参考了php smarty做法),page参数,可以让jade模版缓存不同分页结果的数据。

例如:

1
res.render('/list.jade', 's1', {title:'网站标题', search: [d1,d2,d3 ... ]});这样就输出了一个list.jade为模版的,并且会将 jade模版地址和 s1 作md5缓存成html文件。当然这里的s1表示search page 1,不过你可以写任意值,但是不建议写的太长了。

3、更好的支持node_modules的require(‘rrestjs’)做法

rrestjs本来提倡和expressjs不同的用法,不建议require,而建议使用rresjs本身的目录作为开发目录。不过既然npm提供了将模块下载到node_modules文件夹下的功能,rrestjs也必须支持这个做法。

在0.2.0版本时可以这样加载rrestjs来搭建您的应用:

例如一个简单的helloworld例子:

1
2
3
4
5
6
var   http = require('http'),
conf = module.exports.conf = require('./config/config'), //加载配置文件例子参考rrestjs文件目录下的config文件
rrest = require('rrestjs'),
server = http.createServer(rrest(function (req, res){
res.send('hell world')
})).listen(3000);

注意其中的 module.exports.conf,conf可以是以下的任意一个:

1
'config', '_config', 'conf', '_conf', 'rrestjsconfig', 'rrestconfig',  '_rrestjsconfig', '_rrestconfig', 'appconfig', '_appconfig'

这样rrestjs就可以读到您的配置文件了

4、自动生成缓存目录

如果是另外生成应用的目录 ,rrestjs可以根据您的配置文件在nodejs启动时自动帮您创建好缓存的目录和一些静态文件以及模版存放的目录,方便您的使用。

使用方法只需将配置项打开:autoCreateFolders:true,

详细api见github上的说明文档:

项目地址:https://github.com/DoubleSpout/rrestjs