NeurosyncJavaScript ORM 库
Neurosync 是一个 JavaScript ORM 库,支持离线和实时操作。没错,是 ORM,但并没有疯狂到直接连接到后台数据库。对 Neurosync 来说,数据库就是后端的 REST API,而 Neurosync 就是这个 API 的一个门面。
Neurosync 的生命周期非常简单:
保存数据变更到本地存储
发起 REST 请求
如果请求成功则删除本地存储中的变更数据,标识为已保存,并发布到实时 API
如果请求失败,因为应用本身是离线的,将等待应用在线并继续处理数据更改流程
如果有待决的操作但是应用重启了,数据将会被恢复
一个简单的 TODO 应用示例代码:
var Todo = Neuro({ name: 'todo', api: '/api/1.0/todo/', fields: ['name', 'finished_at'], timestamps: true, comparator: ['-finished_at', '-created_at'], // finished go to bottom, most recently created are at the top methods: { finish: function(finished) { this.$save('finished_at', finished ? Date.now() null); } }, dynamic: { done: function() { return !this.finished_at; } } }); var t0 = Todo.create({name: 'Download Neurosync'}); t0.$isSaved(); // true t0.finish( true ); t0.done; // true t0.$remove(); var t1 = new Todo({name: 'Use Neurosync'}); t1.$isSaved(); // false t1.id; // UUID t1.$save(); var t2 = Todo.boot({id: 34, name: 'Profit'}); // Todo data that already exists remotely t2.$isSaved(); // true t2.name = '???'; t2.$hasChanges(); // true var t3 = Todo.fetch(45); // REST call if doesn't exist locally Todo.all(); // [t1, t2, t3] Todo.collect(t1, t2); // creates a collection of todos var allRemote = Todo.fetchAll(function(all) {}); // call REST API var f0 = Todo.find('name', 'Download Neurosync'); // first match var f1 = Todo.find({done: true}); var w0 = Todo.where('done', true); // all done todos var w1 = Todo.where({finished_at: null}); var g0 = Todo.get(34); // get cached version var g1 = Todo.grab(34); // get cached version, otherwise call REST API var a0 = Todo.grabAll(function(all) {}); // get all cached, if none cached call REST API Todo.ready(function() {}); // when it has been initialized locally and/or remotely (depends on options). Todo.refresh(); // re-fetch from REST API var search0 = Todo.search({done: true}); // sends a search to the REST API (POST by default) var searchPaged0 = Todo.searchPaged({done: true, page_offset: 0, page_size: 20}); searchPaged0.$next();
评论
golang-gosqlgolang orm 库
gosql是一款golangstyle语法的golangorm库。优雅的语法,支持批量插入;轻松嵌套条件,处理各种复杂的查询sql,诸如:and和or组合;全语法支持:forupdate锁、isnul
golang-gosqlgolang orm 库
0
MongoEngineMongoDB 的 ORM 库
MongoEngine由Python语言写成,提供一个很类似Django ORM的API 用于访问
MongoEngineMongoDB 的 ORM 库
0
J-SUtilJava 轻量级ORM库
J-SUtil(javaSimpleUtility)一个轻量级的开源插件。25K的大小让你的web应用瞬间轻松拥有log和数据库访问映射功能(DAO)。支持mysql、Sqlserver、or
J-SUtilJava 轻量级ORM库
0
Kerosene ORMC# ORM 库
Kerosene是一个自适应和无配置的C#ORM库,基于C#dynamics的SQL语法,支持WCF、EntityFramework的POCO对象。示例代码:using Kerosene.ORM.Co
Kerosene ORMC# ORM 库
0
beedbGo的ORM库
Go语言实现的一个数据库ORM库,支持标准的database/sql接口,支持数据库:MySQL、PostgreSQL、DB2、SQLite、ADODB、ODBC。目前这个库使用Gostyle方式来操
beedbGo的ORM库
0