如何从 GunDb 节点获取密钥
How to get key from GunDb node
我已经开始使用 GunDB 并且非常喜欢它。我很容易创建复杂的关系,而没有很多与关系数据库或文档数据库相关的问题。
不幸的是,我遇到了一个看似简单的问题。
我已成功创建节点,但稍后想要获取密钥以便将它们嵌入到页面中。例如,在一个页面上,我正在使用表单添加用户。然后,在另一个页面上,我想获取用户列表并创建一个 select 输入,将他们的名字列为文本,将键列为值。
例如,在第一页我有类似 -
var user1 = gun.get('user/1').put({name: user1});
var user1 = gun.get('user/2').put({name: user2});
var users = gun.get('users');
users.set(user1);
users.set(user2);
另一页,我有类似的东西 -
var users = gun.get('users');
users.map().val(function(user) {
var userOption = document.createElement("option");
userOption.text = user.name;
userOption.value = user.key; // for example, though this does not work
userSelect.appendChild(userOption);
});
稍后,我想在类似 -
中使用选项值
var user = gun.get(selectedUserOption.value);
很遗憾,我不知道如何获得密钥。好像在节点对象中保存为“#”,但我无法确定如何访问这个值。
好问题!大多数回调的第二个参数包含您要获取的数据的字段或键。从你的例子:
users.map().val(function(user, ID) {
var userOption = document.createElement("option");
userOption.text = user.name;
userOption.value = ID; // for example, this now should work
userSelect.appendChild(userOption);
});
现在您可以users.path(selectedUserOption.value)
获取相同的用户引用/链上下文!
很高兴听到您喜欢使用 gun :) 我很想看您项目的演示!介意分享?
我已经开始使用 GunDB 并且非常喜欢它。我很容易创建复杂的关系,而没有很多与关系数据库或文档数据库相关的问题。
不幸的是,我遇到了一个看似简单的问题。
我已成功创建节点,但稍后想要获取密钥以便将它们嵌入到页面中。例如,在一个页面上,我正在使用表单添加用户。然后,在另一个页面上,我想获取用户列表并创建一个 select 输入,将他们的名字列为文本,将键列为值。
例如,在第一页我有类似 -
var user1 = gun.get('user/1').put({name: user1});
var user1 = gun.get('user/2').put({name: user2});
var users = gun.get('users');
users.set(user1);
users.set(user2);
另一页,我有类似的东西 -
var users = gun.get('users');
users.map().val(function(user) {
var userOption = document.createElement("option");
userOption.text = user.name;
userOption.value = user.key; // for example, though this does not work
userSelect.appendChild(userOption);
});
稍后,我想在类似 -
中使用选项值var user = gun.get(selectedUserOption.value);
很遗憾,我不知道如何获得密钥。好像在节点对象中保存为“#”,但我无法确定如何访问这个值。
好问题!大多数回调的第二个参数包含您要获取的数据的字段或键。从你的例子:
users.map().val(function(user, ID) {
var userOption = document.createElement("option");
userOption.text = user.name;
userOption.value = ID; // for example, this now should work
userSelect.appendChild(userOption);
});
现在您可以users.path(selectedUserOption.value)
获取相同的用户引用/链上下文!
很高兴听到您喜欢使用 gun :) 我很想看您项目的演示!介意分享?