rrestjs简单入门教程

rrestjs v0.9.3版本已经发出了,整体性能和API代码风格还是很令我满意的,自夸一下嘿嘿,虽然已经很简单易用了,但是我还是要为想尝试rrestjs框架的朋友写一份超级简单的入门教程。

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

现在我们就开始rrestjs框架之旅吧,如果您有幸用过expressjs,那以下绝对能令你超乎想像的轻松和简单。

step1、搭建环境

rrestjs目前仅在linux系统下测试通过,windows一直没有时间去测试,所以暂且定义您用的是linux系统,并且您需要先安装好一份版本号高于0.6.6的node.js,同时如果您想要使用rrestjs的全部功能,您还需要安装好mongodb 2.0以上版本,当然mongodb并不是必须的。

step2、下载安装rrestjs

您可以去上面的github项目地址下载最新的rrestjs框架;

也可以执行: npm install rrestjs 然后 npm update rrestjs

这样您就安装了最新版本的rrestjs框架了,写本文的时候是v0.4版本

step3、配置rrestjs

我们可以写一个简单小例子来将rrestjs运行起来,您需要先在您的linux系统下创建一个文件夹,我们暂命名为hello。

然后再在文件夹内建立一个配置文件文件夹,我们暂定为config,并在其文件夹内创建一个config.js文件。

紧接着你可以打开以下网址:https://github.com/DoubleSpout/rrestjs/blob/master/config/example_config.js

或者打开

1
/node_modules/rrestjs/config/example_config.js

将其代码复制粘贴到刚刚创建的config.js文件中,这样就完成了我们整个rrestjs的配置拉。

step4、hellow world every one

最后让我们一起来创建一个简单的应用,当用户访问config.js中的端口,我们给它响应一个hello world吧!

在hello文件夹下创建一个app.js文件,还记得hello文件夹吗?就是我们在step3创建的哦。

然后将以下代码copy到app.js中,

再运行 $node app.js 就可以去浏览器敲地址访问拉!

示例代码:

1
2
3
4
5
6
module.exports.conf = require('./config/config');//详细说明见github上 
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);//读取配置文件的监听端口号,只需修改配置文件即可轻松部署

怎么样,无论是配置还是代码风格都要比express简单和易懂不少吧,具体的配置文件说明我想在您拷贝config.js文件时已经看到了很多详细的注释了,有什么问题您可以发电子邮件给我:[email protected] 或者 qq:53822985 (加好友请注明哦)

extra、额外的小惊喜

在您正常运行上述这个例子后,您觉得每次大家都输出 ‘hello world’ 太没有个性了,您想要输出一点有个性的,于是您用您超级漂亮的编辑器将app.js的代码 ‘hello world’ 改成了 ‘ fuck world’。然后您将屏幕切换至ssh窗口,准备按下ctrl+c,终止app.js进程然后重启,因为node.js是单进程的,所以有任何代码的改动都必须手动的去重启node.js进程。

但是!!但是!!请您高抬贵手,先不要按ctrl+c,将窗口切换至浏览器,点一下刷新。您发现了屏幕输出了 ’fuck world‘ 了

这就是rrestjs内置的clusterplus模块,算是捆绑销售吧,他将让您的开发更加轻松。

the end、roa & restful

至此,相信您已经爱上了rrestjs了,但是您在想以前用express的时候不是有很多路由要设置吗?比如:app.get(‘/‘, function(req, res, next){});等等,在您使用了rrestjs以后忘记这些吧,rrestjs有它自己独特的restful路由处理方式。

下面是一段rrestjs的示例代码(这段代码不能直接运行哦!)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
   module.exports.conf = require('./config/config');//加载配置文件,必须放在rrestjs加载之前
var http = require('http'),
rrest = require('rrestjs'),
server = http.createServer(function (req, res){
//这里是主入口,可以根据您的需要自由添加一些东西,而express并没有开放主入口给用户
try{
require('./controller/'+req.path[0])[req.path[1]](req, res);
//这里是核心部分,执行指定控制器中的指定方法,将req和res传参进去
}
catch(err){
restlog.info(err);//日志方法,例如 restlog.error('错误msg');有error,info,等多种等级,详细见github api
res.statusCode = 404;//将响应头设置为404
res.render('/e404.jade');//输出404页面
}
}).listen(rrest.config.listenport);
rrest= rrest; //将rrest对象升级为全局变量

相信聪明的您看了这段代码就明白rrestjs是怎么处理路由的拉!最后需要说明的是req.path数组,这个数组是将用户请求的路径根据’/‘分割而成的,最少2位,不足2位会以‘index’补足,举个例子,用户访问 www.rrestjs.com,则req.pah值为['index', ‘index’];如果用户访问:www.rrestjs.com/user/face,则req.path值为['user', ‘face’]