1、前序
如果你想在最短的时间内感受到nodejs框架给服务器端编程带来的创新和便捷,或者你想在最短的时间内开发出一个属于自己的网站,或者你初出茅庐、对编程知之甚少,又或者你只是一个前端程序员,无法开发出自己心中设想的后端程序,那么也许这篇文章会给你带来不小的帮助,因为SOWF框架将带来以上所有的好处,并且还有更多你想象不到的功能。
2、介绍
SOWF框架,英文全称为Service-Oriented Web Framework,意为基于服务的网站框架。用该框架编写的网络应用,将前端的不同请求编写为一个一个的事件,即服务,每一个请求都是一个服务,甚至一个页面的请求都可以当成是一个服务。目前,流行的基于nodejs的框架使用最广泛的是express框架,该框架封装许多nodejs原生的api,提供了傻瓜式的配置设置,路由也变得简单而有条理,因此获得广大nodejs框架热爱者的喜爱,本框架也是基于express而开发的。
但是,使用express还是会有很多麻烦。首先必须要熟悉express提供的api,然后才能更好的使用这个框架;express固然对路由进行了封装,但是这种封装是轻量的,也就是编程人员仍然要话费很大力气去配置路由,如果有很多人来编写这个网络应用,将会导致配置路由的文件变得混乱,不利于编程人员协同工作,大大降低了工作效率;另外,对于mongodb的访问,express没有提供方便快捷api,使用mongo提供的api将会十分麻烦,而且有很多限制。
综上所述,SOWF是一个轻便简单的nodejs服务器框架,它能够让你在短时间内编写出你心中已经描绘出的美好网站,同时会给你提供无穷无尽的新功能。一切只为节省你宝贝的时间。
3、详细使用
3.1、创建目录
3.1.1、创建页面文件目录
支持Html(html,html5),支持jade
3.1.2、创建服务目录
存放编写的各种web服务,为最核心的目录
3.1.3、创建静态文件目录
用于保存图片,脚本(javascript),样式文件(css)
3.1.4、也可以创建其他自定义目录
3.2、服务器配置
3.2.1、基础配置
a)服务器名称
b)服务器端口
c)页面文件目录,即3.1.1所创建的目录
d)服务文件目录,即3.1.2所创建的目录
e)静态文件目录,即3.1.3所创建的目录
f)其他相关配置
3.2.2、高级配置
a)是否开启集群
b)集群服务器个数
c)是否使用持久化的session
d)持久化session的数据库配置
e)上传文件临时路径
f)其他相关配置
3.2.3、数据库配置
a)用户名和密码
b)数据库服务器地址和端口
c)数据库名称
3.2.4、关于服务器配置的实例代码
//javascript
var sowf = require('./index');
var server = sowf();
var config = server.GetConfig();
config.set('Port',7777);
config.set('Cluster',false);
config.set('ClusterNumber',0);
config.set('ViewDir','/views');
config.set('ServiceDir','/service');
config.set('PublicDir','/public');
config.set('AppName','SOWFServer instance');
3.3、添加页面文件
3.3.1、创建html文件(或其他页面文件,如jade)
3.3.2、引用静态文件
假设静态文件目录位于’/public’,并且在这个目录下创建了三个文件夹,’/public/images’、’/public/javascripts’、’/public/stylesheets’。
a)图片的引用
<imgsrc="/images/img.jpg" />
b)脚本的引用
<scripttype="text/javascript" src="/javascripts/jquery.min.js"></script>
c)样式文件的引用
<linkrel="stylesheet" href="/stylesheets/style.css">
3.3.3、页面文件会自动加载,不要进行配置,例如index.html的路径为’/views/node1/node2/node3/index.html’,其中’/views’为页面文件的根目录,则该文件的访问路径为’http://server:port/node1/node2/node3/index’。
3.4、添加web服务
3.4.1、创建javascirpt文件
3.4.2、编写服务的路径,例如某个service有一个method方法提供页面访问,则代码如下:
service.route.method = {
url : '/service/method',
type : 'get',
function : 'method'
};
其中url表示该方法的访问路径,可以随意配置,type表示该方法的属性(get或者post),function表示该方法的执行体
3.4.3、编写方法的执行体
3.4.4、web服务会通过配置某个service文件中定义的访问路径,自动加载该web服务,并且能通过配置的url,正确高效的访问到该web服务,并且可以自由的配置Rest风格的URL。
3.5、创建数据库Model(相当于关系数据库中Table)
3.5.1、获取数据库实例
vardatabase = server.Database();
3.5.2、创建Model,例如
database.CreateModel('Test1',{id:Number,Name:String});
3.5.3、具体使用详情请参见mongoose的使用方法
3.6、使用扩展功能
3.6.1、扩展功能1:使用Apache Solr进行全文搜索
使用SOWF提供的Solr Api,可以非常简单的访问到Apache Solr服务器,并能够进行快速的全文搜索。
3.6.2、扩展功能2:使用Rabbitmq
Rabbitmq作为目前流行的消息服务器,应用十分广泛,对于集群以及各系统之间的交互有着十分显著的作用。使用SOWF的rabbitmq api可以和许多其他服务器进行交互。
3.6.3、扩展功能3:使用mongoose提供的数据库api
3.6.4、还有许多其他扩展功能
3.7、启动服务器
3.7.1、启动
server.StartSOWFServer(config);
4、维护和扩展