Clouda开发笔记

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,性能和速度上没有任何问题,但凡事都有两面性,这样写死的绑定也限制了开发者采用其它数据库的可能性,如果能通过配置来修改这些绑定就比较完美了。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值