Как получить ключ от узла GunDb

Я начал использовать GunDB, и я действительно наслаждаюсь этим. Я легко создаю сложные отношения без многих проблем, связанных с реляционными или документными базами данных.

К сожалению, у меня проблемы с, казалось бы, простой проблемой.

Я успешно создал узлы, но позже хочу получить ключи, чтобы я мог вставить их на страницу. Например, на одной странице я добавляю пользователей с помощью формы. Затем, на другой странице, я хочу получить список пользователей и создать выборочный ввод, который перечисляет их имена в виде текста и ключи в качестве значений.

Например, на первой странице у меня есть что-то вроде -

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

К сожалению, я не могу понять, как получить ключ. Кажется, он сохраняется в объекте узла как "#", но я не могу определить, как получить доступ к этому значению.

1 ответ

Решение

Отличный вопрос! Второй параметр в большинстве обратных вызовов содержит поле или ключ данных, которые вы пытаетесь получить. Из вашего примера:

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) чтобы получить тот же контекст ссылки / пользователя!

Я рад слышать, что вам нравится пользоваться пистолетом:) Я хотел бы увидеть демо вашего проекта! Разум делиться?

Другие вопросы по тегам