创建博客 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

snoopyxdy的博客

www.rrestjs.com, node.js高性能restful框架

 
 
 

日志

 
 

rrestjs v0.9升级文档  

2012-10-10 19:52:11|  分类: node |  标签: |举报 |字号 订阅

v0.9.0
1、补完了一些测试代码
2、新增加api:request.param 会将所有客户端发送过来的参数,不论get或者post等的参数放入这个对象。
3、新增手动路由功能:
用户可以再config.js新增这样的设置:

manualRouter:{
"get:/user/face":function(req, res){res.send('change face')},
"post:put:/user/info":function(req, res){res.send('get not access!')},
"/user/all":function(req, res){
if(!req.session.count) req.session.count = 0
res.send('all can access!'+(req.session.count++));
},
}

设置规则:method:method:url
注意:url必须是“/”开头的。
如果不加method则表示该 url 接受任何方式的 http 请求

4、修复了模版静态缓存可能存在的缓存雪崩效应
5、修复了不依赖jade和ejs模块的小问题

v0.9.1
1、修复了$.post('/', {a:[1,2,3],b:{a:{t}}}) 这类的请求非KEY-VALUE格式参数的错误


v0.9.2
1、修复了0.9.1的执行2次post请求回调函数的bug
2、完善了部分测试用例
3、新增加API更加简洁,去掉了rrest,当然原有的程序还是可以继续使用rrest
例如:
原来执行hello world如下代码:

var http = require('http'),
rrest = require('rrestjs'),
server = http.createServer(rrest(function (req, res){//完全原生的node.js手册代码风格,没有学习门槛
res.send('hello world everyone!'); //rrestjs封装了一个res.send方法,用来响应客户端的请求
})).listen(rrest.config.listenPort);//读取配置文件的监听端口号,只需修改配置文件即可轻松部署


现在可以不用写rrest了,而是直接fn,如下:更加简洁明了

var http = require('http'),
rrest = require('rrestjs'),
server = http.createServer(function (req, res){//完全原生的node.js手册代码风格,没有学习门槛
res.send('hello world everyone!'); //rrestjs封装了一个res.send方法,用来响应客户端的请求
}).listen(rrest.config.listenPort);//读取配置文件的监听端口号,只需修改配置文件即可轻松部署



v0.9.3(救火版本)
1、紧急修复了由于path.normalize函数在windows下出现的意外情况,重新写了normorlize方法使windows下可以正常运行rrestjs框架
2、修复了parse整合css和js文件可能存在的相对路径安全漏洞
3、增加了一项参数带“.”的解析功能,比如:

客户端请求user.name=aaa && user.sex = male
现在将会自动解析成:
{
user:{name:'aaa', sex:'male'}
}

4、修改了部分测试用例,使测试更加健壮,比如深层次的jade模版等


v0.9.4
1、修复了get请求下无法获取req.param的bug
2、增加和完善了一些测试用例,增加main.js测试总开关,只要执行main.js会自动执行所有测试用例
3、新增加一项配置:


ClusterReloadExcept:['.swo', '.swp', '.swn', '.swx', '.bak'],//排除后缀名是此数组内的文件修改的重启进程


如果开启开发者模式,则后缀名为数组内的文件修改不会引起项目重启


v0.9.5
1、增加了自定义路由占位符,比如可以这样:

manualRouter:{

"get:/user/face":function(req, res){res.send('change face')},

"post:put:/user/info":function(req, res){res.send('get not access!')},

"post:put:/user/info/{userid}":function(req, res){res.send('get user id!')},


//{}花括号内的为变量占位,表示此段url为可变参数

"/user/all":function(req, res){

if(!req.session.count) req.session.count = 0

res.send('all can access!'+(req.session.count++));

},

}


2、增加response.r403()方法,快捷相应403forbidden
3、增加response.r500()方法,快捷相应500内部错误
4、增加npm install -g rrestjs,  
直接生成项目文件夹: rrestjs -p /tmp/foo && cd /tmp/foo;
也可以使用开发者模式,带自动重启(windows下无效)   rrestjs -p /tmp/foo -d && cd /tmp/foo;
帮助请参考rrestjs -h
5、增加了测试用例


v0.9.9版本
1、增加了dev模式,可以通过命令node app.js -d 或者node app.js --dev 进入开发模式,可以调用开发模式的配置
2、正常打印了restlog.error 下的错误堆栈调用错误列表
3、修正了staticMaxAge这个语法错误

v0.9.10版本
1、增加了多进程可能冲突记录日志的问题,将多进程记录了到多个文件日志
2、修正了上传文件多余的属性问题
3、修正了api,去除了如下的代码

server = http.createServer(rrest(function (req, res) {

res.send('hello world');

})).listen(rrest.config.listenPort);

去除上面代码红色部分,同意api为:

server = http.createServer(function (req, res) {

res.send('hello world');

}).listen(rrest.config.listenPort);

4、如果不是创建http或者https服务器想使用rrestjs框架的话可以用如下代码:

var rrest = require('rrestjs');

rrest(function(){

//rrestjs框架加载完毕会执行这个回调函数

})


  评论这张
 
阅读(625)| 评论(8)
|      
推荐 转载

历史上的今天

最近读者

热度

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2014