无法从根级别删除节点

时间:2017-10-25 10:32:21

标签: javascript gun

枪0.8.8,Node.js-to-Node.js,Node.js-to-browser

创建一个节点(Node.js)

let node = gun.get(`watcher/f0de26c0-a29f-11e7-8661-154b982951a4`);
node.put({
  stats: {
    num: 13
  },
  name: 'trex'
});

删除节点(Node.js)

node.put(null);

检查节点是否存在(Node.js)

node.get('stats').val(function (v, k) {
  console.log('task', task);
  console.log('k:', k);
  console.log('v:', v);
});

节点及其所有属性仍然存在!

task f0de26c0-a29f-11e7-8661-154b982951a4
k: stats
v: { _: { '#': 'j949102jDUdSklGduZh8', '>': { num: 1508926521878 } },
  num: 13 }

检查节点是否存在(浏览器)

gun.get('watcher/f0de26c0-a29f-11e7-8661-154b982951a4').get('stats').val((v, k) => console.log(JSON.stringify(v)))
VM604:1 {"_":{"#":"j949102jDUdSklGduZh8",">":{"num":1508926521878}},"num":13}

尝试再次删除节点(浏览器)

gun.get('watcher/f0de26c0-a29f-11e7-8661-154b982951a4').put(null)
gun.js:825 Data saved to the root level of the graph must be a node (an object), not a object of "null"!

是否可以完全删除根级别节点?

当我尝试从Node.js中删除它时,为什么没有警告消息?

什么是非根级别?

1 个答案:

答案 0 :(得分:1)

简短的回答是你不能。您可以清空节点... gun.get(" rootNode")。output(null);

或者您可以添加顶层节点,例如' dbRoot'并且每个人都比根更深一层。

可行的方式......

  • 启动连接到第一个的新枪实例,并执行除要删除的节点以外的所有节点的映射。
  • 关闭两台服务器,将data.json移动到原来的
  • 重新启动服务器。