Clouda开发笔记

来源:互联网 发布:淘宝客服 日均接待量 编辑:程序博客网 时间:2024/06/06 00:03

Clouda介绍


Clouda是由百度开发的基于nodejs的Javascript开发框架,主要为移动端设计,运行性能和兼容性都比较好。
可以从这里获得源码:https://github.com/brandnewera/sumeru
官方网站:http://cloudajs.org/


安装与运行


由于Clouda是基于nodejs的框架,所以试用前首先要安装nodejs。
nodejs可以从这里下载:http://nodejs.org/download/


此外,Clouda使用MongoDB作为本地数据库,计算机还需要安装MongoDB。
MongoDB可以从这里下载:http://www.mongodb.org/downloads


接下来安装Clouda就比较简单了,使用一条简单的命令即可搞定:
npm install -g sumeru


然后创建一个项目:
sumeru init ./testpro


运行该项目:
cd myproject
sumeru start



开发实战


下边利用Clouda开发一个RSS阅读器,本文只列出核心代码,具体项目源码可以参考https://github.com/brandnewera/clouda-examples/tree/master/SpiderNews 然后将对应文件替换为文中代码即可。

externalPublishConfig.js (本段代码实现获取RSS内容的功能)

var iconv = require('iconv-lite');var extpubConfig = {}extpubConfig['pubnews'] = {    geturl : function(params){        return 'http://blog.csdn.net/rss.html?type=Home&onlytitle=1';    },    resolve : function(originData){        data = iconv.decode(originData,'utf-8');        var reg = /<item>[\s\S]*?<title>(.+?)<\/title>[\s\S]*?<guid>(.+?)<\/guid>[\s\S]*?<\/item>/img;        var arr = [];data.replace(reg, function(a,b,c){arr.push({title:b,link:c});});        var resolved = {topnews: arr        }return resolved;    },    fetchInterval : 6 * 1000,    buffer : true}module.exports = extpubConfig;

news.js (本段代码实现对数据的输出)

sumeru.router.add({        pattern: '/news',        action: 'App.news'    });sumeru.router.setDefault('App.news');App.news = sumeru.controller.create(function(env, session){    var view = 'news';    var getNews = function(){        session.news = env.subscribe('pubnews', function(newsCollection){            var obj = newsCollection.getData()[0];            session.bind('newsBlock', {                'topNews' : obj['topnews']            });        });    };    env.onload = function(){        return [getNews];    }    env.onrender = function(doRender){        doRender(view, ['push','left']);    };});

运行结果



使用体验

Clouda采用了MVC模式来实现web开发,在保证良好规范的前提下也比较容易上手,并且支持在前台页面中编写后端代码,这个跟Angular有点相似。

本人根据实际编程以及个人喜好,列举一下Clouda比较赞的一些功能:

1、接近完美的MVC开发模式

2、model的validation机制

3、对model集合的封装:collection

4、trunsition特效实现

5、流畅易用的touch操作

6、内置数据的订阅与发布


最后,由于Clouda是基于nodejs的,并且数据库用的MongoDB,性能和速度上没有任何问题,但凡事都有两面性,这样写死的绑定也限制了开发者采用其它数据库的可能性,如果能通过配置来修改这些绑定就比较完美了。



原创粉丝点击