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 | module.exports.conf = require('./config/config');//详细说明见github上 |
怎么样,无论是配置还是代码风格都要比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 | module.exports.conf = require('./config/config');//加载配置文件,必须放在rrestjs加载之前 |
相信聪明的您看了这段代码就明白rrestjs是怎么处理路由的拉!最后需要说明的是req.path数组,这个数组是将用户请求的路径根据’/‘分割而成的,最少2位,不足2位会以‘index’补足,举个例子,用户访问 www.rrestjs.com,则req.pah值为['index', ‘index’];如果用户访问:www.rrestjs.com/user/face,则req.path值为['user', ‘face’]