0

我正在尝试使用 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 参考用户和他们的信息。告诉我怎么做!

4

2 回答 2

1

我会通过将 a 存储nextUniqueId在 localStorage 中来增加一个 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));
于 2013-06-03T02:30:17.077 回答
1

使用用户的电子邮件更有意义。简单是好的。

但是......这是本地存储。使用它的用户不应该超过一个,对吧?localStorage 本身对于客户端应用程序是唯一的。真的会有多个用户使用同一个浏览器吗?

如果是这样,那么这很好。但我想知道您是否真的在考虑 localStorage 的工作原理......

于 2013-06-03T14:24:10.227 回答