基于订阅的nosql内存数据库

我需要基于订阅的内存数据库,我可以在我的数据更改callback(我将只用于我的testing)。 我使用了gunDB ,它只能这样工作:

var Gun = require('gun'); var key = 'something_long'; var state = { a: 1, b: 2 }; var gun1 = Gun(); var gun2 = Gun(); gun1.put(state).key(key); gun2.get(key).on(function(val) { console.log('Value for gun2 (using ".on") is: '); console.dir(val); }); 

当我交换gun1.putgun2.get它不起作用。 这意味着我不能真正订阅,直到钥匙不在那里。 这个例子不起作用(callback永远不会被调用):

 var Gun = require('gun'); var key = 'something_long'; var state = { a: 1, b: 2 }; var gun1 = Gun(); var gun2 = Gun(); gun2.get(key).on(function(val) { console.log('Value for gun2 (using ".on") is: '); console.dir(val); }); gun1.put(state).key(key); 

我不太熟悉所有可用的内存数据库,我很感激任何人都可以提出build议。

同样的例子适用于Firebase:

 var Firebase = require('firebase'); var statesRef = new Firebase('https://******.firebaseio.com/states'); var statesRef2 = new Firebase('https://******.firebaseio.com/states'); var key = 'something_very_long'; var data = { a: 1, b: 2 }; statesRef2.on('value', function(dataSnapshot) { console.dir(dataSnapshot.val()); }); statesRef.set({ key: key, state: data }); 

创build单独的/多个GUN实例是没有用或不必要的。

一切正常,如果你只使用1个GUN实例:

http://jsbin.com/yorujufofe/edit?js,console

它也适用于NodeJS。

返回给你的val对象是一个安全的复制快照, 改变它不会影响数据库状态

我希望这是有帮助的。

Interesting Posts