gpt4 book ai didi

javascript - 基于订阅的 nosql 内存数据库

转载 作者:行者123 更新时间:2023-11-29 21:27:23 25 4
gpt4 key购买 nike

我需要基于订阅的内存数据库,我可以在其中对我的数据更改进行回调(我将仅将其用于我的测试)。我用了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 时,它不起作用。这意味着在 key 不存在之前我无法真正订阅。此示例不起作用(永远不会调用回调):

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);

我不太熟悉所有可用的内存数据库,如果有人能提出建议,我将不胜感激。

同样的例子适用于 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 });

最佳答案

创建单独/多个 GUN 实例没有用也没有必要。

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

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

它也适用于 NodeJS。

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

希望对您有所帮助。

关于javascript - 基于订阅的 nosql 内存数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37198419/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com