问题标签 [gundb]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
gun - gun.map() 在根节点上的期望行为是什么?
使用结果:
在枪 0.2020.430 中,正在向 localStorage 写入以 . 为前缀的(根?!)节点的名称undefined
。
由于前缀,我想这是一个错误,但结果应该是没有前缀或根本没有?
我想,没有什么是更好的选择,因为它可以防止可能的粗暴行为,比如覆盖所有数据......但是?
gun - 如何使用 GUDB 上传和下载媒体文件?
我正在尝试使用 GUN 创建一个文件共享平台。我阅读了教程和 API,但找不到上传/下载文件的通用方法。
听说 GUN 的 localStorage 有 5Mb 的限制,如果我想上传一个大文件,我必须把它切片然后存储到 GUN。但是现在我找不到将文件存储到 GUN 中的方法。
我从Retric阅读了这个问题,我知道如何将图像存储到 GUN 中,但是我可以存储其他类型的文件,例如.zip
或.doc
文件吗?是否有用于文件存储的通用 API?
node.js - 使用 Gun 构建树结构
我正在尝试通过 Gun 实现一个树形结构,该结构允许表达公司、这些公司的子公司及其产品之间的关系。我所做的结构如下:
- 有一个根节点:这是某些产品(例如传感器)的主要销售者,其所有子节点(深度节点 1)都是其客户;
- 从深度 1 开始有子节点,而不是叶子:这些是根结的客户;他们可以有不同的分支;支行可以有子支行等,支行数量不限;
- 有叶结:这些是包含在一个分支,一个子分支,一个子分支中的产品......
这是我的想法:
- 创建一个
client
集合; - 将客户端节点放入
client
集合中; - 创建一个
branch
集合; - 将分支节点放在
branch
集合中; - 链接
branches
设置为client
设置; - 创建一个
sensor
集合; - 将传感器节点放在
sensor
集合内; - 链接
sensors
设置为branches
设置。
有人这样想:
这是我的实现
有两点我无法澄清:
1 - 我不知道我是否很好地使用了 Gun set:我尝试添加一些关系但没有成功;考虑以下说明:
我试图client
为两个客户节点建立关系,但打印rootNode
显示我只与节点rootNode
有关系!与节点的第一个关系消失了,所以我开始使用 Gun 集。我的代码有效(或多或少),但我不知道我是否正确使用 Gun set以及这是否是正确的方法,因为我想在主要供应商、客户、客户分支机构之间建立这种关系和每个分支中的传感器。client
frankMirrors
macDoland
2 - 我想让这种方法更通用和可扩展:现在有客户端、分支和传感器;这可能会在未来发生变化,客户端和传感器之间的级别数量可能会增加。这意味着客户端节点(深度 1)和传感器(最大深度)之间可能存在任意数量的级别:例如,一个非常小的客户端可能没有分支,因此它的客户端节点smallCompany
将直接链接到它的sensors
; 再举一个例子,一个巨大的客户可能有(比如说)五个深度级别,我不想硬编码 Gun 集名称,例如macDolandNySubSubSubSubBranch
.
如何为任意数量的子分支提供可扩展性?
javascript - Gun 如何在有时断开的 P2P 网络中管理用户
请帮助我了解 Gun 如何在有时断开的 P2P 网络中管理用户。
假设有两个 Gun 实例I1和I2被配置为对等点,并且假设用户“doe”事先不存在于 I1 或 I2 上。假设在 I1 和 I2 未连接时在两个实例上都创建了用户“doe” 。两次尝试都应该成功。为了争论,让我们在 I1 doe1上调用“doe”用户,在 I2 上调用 doe2。
现在,当 I1 和 I2 连接时会发生什么?doe1 和 doe2 是否被认为是同一个用户?是否取决于用户注册时提供的密码?
我的理解是,只要用户注册时提供的密码相同,就可以。这是合理的。但我最大的问题是,如果他们被赋予不同的密码怎么办?
我认为在这种情况下, doe1 和 doe2 将被视为不同的用户......但那又如何呢?I1 和 I2 将如何处理这种情况?I1 会简单地拒绝 doe2 吗?反之亦然?还是留给实施?
您的建议将不胜感激。谢谢你。
安郎
javascript - 如何隔离 Gunjs 数据库?
几天来我一直在尝试 GunJs,我真的很喜欢它。作为一个初学者项目,我关注了旨在建立自己的聊天的Fireship 聊天 dapp 视频。
这是问题所在,既然我已经完成了教程,我想创建自己的聊天。但是,由于某种原因,如果我在自己的应用程序中获得一个“聊天”节点,它似乎会在与在线教程节点相同的“聊天”节点上找到。
如果我更改加密密钥(然后消息变得未定义),情况也是如此。由此产生了多个问题:
- 图形节点名称在整个 GunDb 中是唯一的吗?
- 当两个基于枪的应用程序调用相同的节点名称时,您如何处理冲突?
- 这个问题通常是通过使用“标题”道具过滤来解决的吗?
- 如何让它只接收我的数据?
即使我已经阅读了大部分文档,但在理解图表通常如何在应用程序之间分离时,我似乎还缺少一些东西。任何有关其工作原理的见解将不胜感激。
javascript - Gundb:只有在第二次执行链时才调用Once-Callback
我有一个存储练习结果的图表。该图如下所示:
EXERCISE_RESULTS -> <ExerciseId> -> <Date> -> ResultEntry
现在我想通过使用以下链命令来检索一个练习 ID 节点:
gun.get(TableKeys.EXERCISE_RESULTS).get(exerciseId).once(callback)
当我执行链时,一次方法的回调没有被调用。但是,如果我再次调用它,则将使用ExerciseId
-Node 的数据调用回调。
你知道这种行为的原因可能是什么吗?
我用的是枪版0.2020.1232