用javascript在码实云平台上,可以在云里编写原生的移动应用。移动应用必然要和数据库打交道。码实平台提供了全面的云服务,也包括了数据库的部分。云编程可以方便地用javascript对数据进行操作。码实平台里,数据库数据统称为BO(Business Object)。今后的教程里,BO就是云数据库里的数据。
应用中使用数据库之前,我们需要在web开发工具的“数据”栏目里创建新的数据模型。数据模型即用户数据的定义,里面有若干字段。点击“编辑字段”按钮,就可以对数据字段任意定制。详细使用请参阅码实平台数据定制方面的教程。
本实例使用的数据非常简单,只有一个文本字段叫“描述”,保存任意长度的一段文字。程序实现了两个功能:读取并显示数据库里的数据BO,产生一个新的数据记录,分别用两个页面实现。
页面1:数据列表
这个页面的功能是读取数据并且按一个纵向列表的方式展现各个数据记录。移动应用的数据展示,鉴于屏幕较小且竖屏为主,最常见的方式就是这样的纵向列表。
Class.create(Mash5.Widget, {
initialize : function () {
var view = Ti.UI.createView({
backgroundColor : '#fff',
width : Ti.UI.FILL,
height : Ti.UI.FILL,
});
this.setContentView(view);
var context = this.getContext();
var _this = this; // JS的闭包里this总是指向自己所在的函数。跨越函数引用this,需要指向外部函数的this副本。
// 准备数据库参数
var params = {
'method.name' : 'mash5.task.queryFeeds',
'method.version' : 'Titanium',
'method.optimize' : 'fetchOne',
'method.optimize.includeField.fieldName' : '$format$' + JSON.stringify(['_id', 'name', 'Positions']),
'page.nextTime' : '9999999999999',
'page.perPageSize' : 50, // 每次只读取50条数据记录
'query.bo.nameSpace' : 'dev.bo.basic.BOjiaocheng_1409725566665', // 云数据库里本应用数据的命名空间
};
var tableView;
var queryFeeds = function () {
if (tableView) {
// 准备重建 tableView
view.remove(tableView);
tableView = null;
}
// 访问云数据库,通过参数params调用API读取数据
Mash5.Network.executeHTTPClientForAllResult(