将用户数据存储在本地存储中的对象中

时间:2016-08-06 08:01:50

标签: javascript

我正在创建一个关于创建网站的学校项目。我已经设法在注册帐户时将用户数据保存到本地存储中。当我昨天尝试使用以下代码时,代码可以工作: 关键' currentUser'以用户身份登录后会出现在本地存储中。但是,在我清除了本地存储(阵列中的用户太多)并再次重新运行代码后,currentUser将不再显示在本地存储中。 这是我的代码: 从编辑个人资料页面:     `

<script>
var currentUser=null;
document.addEventListener("DOMContentLoaded",loadUserData);

function loadUserData() {
currentUser = localStorage.getItem("currentUser");
if(currentUser!=null) {
currentUser = JSON.parse(currentUser);

    }
}
</script>

以上代码加上登录html中的代码显示currentUser为本地存储中的密钥(应仅在以当前用户身份登录时显示) 从登录页面:

    function checkUser(ev) {
          ev.preventDefault();
          var status=false;

          var username = document.getElementById("username").value;
          var password = document.getElementById("password").value;


          for(var i=0;i<userList.length;i++) {
            var u=userList[i];
            console.log(u.username);
            console.log(u.password);
            if (u.username==username && u.password==password){
            status=true;
                            localStorage.setItem("currentUser",username);
            currentUser=userList[i];
            break;
            }
          }

          if (status==true){
            location.href="EditProfile.html";
          }

     }

本地存储中显示的只是关键的currentUser,但它的值是空的。我想在用户登录后显示当前存储中显示的currentUser的数据信息,以便我可以在编辑配置文件和配置文件页面中显示用户详细信息。

我期望在本地存储中看到的内容:

key             value
currentUser    {"username":"staff3","name":"stella ","password":"123","rpassword":"123,"email":"g@gmail.com"}

本地存储中显示的内容:

key           value
currentUser    //nth showed up here 

2 个答案:

答案 0 :(得分:1)

问题在于:

LocalStorage仅存储字符串。如果要存储对象,可以使用

 JSON.stringify(object)

所以在你的情况下,你需要:

localStorage.setItem("currentUser",JSON.stringify(userList[i]));

希望有所帮助!

答案 1 :(得分:0)

只需这样做

  function checkUser(ev) {
      ev.preventDefault();
      var status=false;

      var username = document.getElementById("username").value;
      var password = document.getElementById("password").value;


      for(var i=0;i<userList.length;i++) {
        var u=userList[i];
        console.log(u.username);
        console.log(u.password);
        if (u.username==username && u.password==password){
       console.log('Logged In');//check whether this console appears or not
                        localStorage.setItem("currentUser",userList[i]);//store whole data of logged user
        currentUser=userList[i];
        status=true;
        break;
        }
      }

      if (status==true){
        location.href="EditProfile.html";
      }

 }