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();
问题内容: 如何在Python3中将输入转义到MySQL数据库?我正在使用PyMySQL,并且工作正常,但是当我尝试执行以下操作时: 如果字符串具有或,则它将不起作用。我也尝试过: 问题在于该库(PyMySQL)使用了Python2.x的格式语法,该语法不再起作用。我也发现了这个可能的解决方案 在这里,但我不知道在何处添加此代码。这就是我得到的一切: 编辑:我解决了!在PyMySQL中,正确的方法
问题内容: 我感到困惑的是,在同一SQL Server实例中使用跨数据库查询的优缺点是什么? 我能想到的一件事是性能问题(查询将很慢),如果是这种情况,该问题的解决方案是什么? 请重点说明解决方案的优点和缺点,以便我可以放心地在两个数据库上工作。 我有两个数据库db1 Companies / CRM和db2 Products / E-commerce 问题答案: 您可能遇到的问题与管理有关。请在此
问题内容: 有多少个数据库系统使用JSON进行存储或传输?我知道: CouchDB MongoDB DBSlayer 我记得我在SO用户的个人资料中看到了另一个供应商。该系统使用的是所谓的二进制JSON,但我不记得该产品的名称。 最近,似乎越来越多的DB项目正在将JSON用于持久性存储。其中一些甚至将HTTP用作传输层。 问题答案: MongoDb是使用二进制JSON存储格式的一种。我不知道是否还
问题内容: 我有一张桌子,大约有17个字段。我需要在此表中执行频繁的更新。但是问题是 每次我可能只更新几个字段 。在这种情况下,编写查询以进行更新的最佳方法是什么?我正在寻找一个选项,其中 值仅在不为null时才更新 。 例如,我在数据库Say A,B,C,D中有四个字段。用户更新say D的值。所有其他值保持不变。因此,我需要一个更新查询,该查询仅更新D的值,而其他值保持不变。因此,如果我将a,
问题内容: 我有一个专栏 组 。 群组 具有存储在group_types中的不同类型(买方,卖方,裁判)。只有当该组是买方类型时,它才具有另一种(更专门)的类型,例如电气和机械类型。 我对如何将其存储在数据库中感到有些困惑。 有人可以建议我一个数据库结构吗? 谢谢 问题答案: 将您的存储为层次结构表(带有或模型): : 将选择中的所有买家。 : 将选择任何数据库中的所有买家。 如果您不需要层次结构
问题内容: 我在同一服务器上的2个不同数据库中有2个相同的表。将数据从表复制到另一个表的最佳方法是什么? 问题答案: 使用: 存在是经过简化的,但是如果有主键/ auto_increment可以担心/等,那么您就省去了。
问题内容: 我想通过注释@Query通过Jpa存储库进行Join查询。我有三个表。 本机查询是: 现在我有了Table Hibernate实体,所以我在ApplicationRepository中尝试过 日志说 意外的标记 有什么想法吗? 我的表实体 Application.java: Customer.java: User.java: 问题答案: 您不需要JPA中的ON子句,因为借助映射注释,J
问题内容: 我创建了一个新的Rails项目,调用 然后当我在目录中运行 我收到关注错误 我见过其他人遇到此错误,但他们通常是linux用户,并且我正在运行Windows。我试图重新安装Rails(railsinstaller.org)和mysql 5.5。我既使用了32位版本,也使用了64位版本 问题答案: 这里似乎已经有几个问题。您尝试过他们的解决方案吗? 相关部分在这里: