3
我已經開始使用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);
不幸的是,我無法工作,如何拿到鑰匙。它似乎以節點對象的形式保存爲「#」,但我無法確定如何訪問此值。
馬克,感謝您的快速響應,也感謝您創建和共享GunDB!我很樂意分享我的項目,但現在還只有幾個本地主機上的表單。我試過使用ID作爲第二個參數。它使用'users.map(函數(用戶,ID))',而不是在使用'users.map().val(函數(用戶,ID))''時。我用http://jsbin.com/ziremuquro/edit?js,console進行測試。 – user12700
我還是不太瞭解GunDB,所以我掙扎了一下。如果我使用val(),我看不到該ID。如果我使用map(),我會得到重複的。不過,我管理了一個黑客解決方案。爲了獲得用戶的ID,我做了以下操作:var users = gun.get('users'); users.map()。val(function(user){console.log(user ._ ['#'];});'這不太好,我敢肯定有暗示,但它正在工作...... – user12700
確實,這是一個錯誤 - 謝謝你指出這一點,現在你的破解將會起作用,但我會嘗試更新答案,發佈補丁或其他內容,但可能需要一週左右的時間 - 真的本週繁忙,跳轉到https://gitter.im/amark/gun,有一羣人可以幫助那裏(儘管確保也將問題發佈到StackOverflow是首選)。 – marknadal