我正在尝试使用localStorage创建用户数据库。我只需要使用唯一的id存储创建的用户,以便稍后我可以将其作为密钥引用。现在我在我的application.js中有这个代码:
$(document).ready(function() {
$("#signupform").submit(function(e) {
e.preventDefault();
var user = {
name: $('#pname').val(),
email: $('#email').val()
};
localStorage.setItem('user', JSON.stringify(user));
console.log(JSON.parse(localStorage.getItem('user')).name);
var html = new EJS({url: 'templates/usershow.ejs'}).render(user);
var content = document.getElementById('content');
content.innerHTML = content.innerHTML + html;
$("#signupform").remove();
});
});
我需要localStorage.setItem('user'...类似于localStorage.setItem('i'...其中“i”随着每个新创建的用户(如索引)的增加,当点击提交按钮时使用用户电子邮件作为密钥更有意义吗?这样我可以通过他们的电子邮件查找每个用户?我将如何进行此操作?再次......我只是想设置一个用户数据库我可以使用localStorage轻松引用用户及其信息。告诉我如何!
答案 0 :(得分:1)
我会通过在localStorage中存储nextUniqueId
来增加ID,然后获取该密钥并递增它。像这样:
function getNextUnique () {
var next = localStorage.getItem('nextUniqueId');
next = next ? parseInt(next) : 0;
var newNext = next + 1;
localStorage.setItem('nextUniqueId', newNext);
return next;
}
每当您想要保存新用户时都要调用它:
localStorage.setItem(getNextUnique(), JSON.stringify(user));
答案 1 :(得分:1)
使用用户的电子邮件更有意义。简单就是好。
但是 ...这是localStorage。不应该有多个用户使用它,对吧? localStorage本身对于客户端应用程序是唯一的。真的会有多个用户使用相同的浏览器吗?
如果是这样,那么这很好。但我想知道你是否真的在考虑localStorage如何运作......