从ejs模板访问localStorage

时间:2014-08-12 18:57:07

标签: node.js express local-storage ejs

我正在尝试将服务器发送的一些数据保存到客户端localStorage中的EJS模板中。但是,当我尝试在模板中访问localStorage时,我得到localStorage是未定义的。

这是我的page.ejs的一部分:

<% localStorage.setItem('info', JSON.stringify({'user': user})) %>

其中user是从服务器收到的值。

这可能吗?

1 个答案:

答案 0 :(得分:1)

根据您的要求,有几个选项。我发现这篇文章看起来有点不同,但这是一种方式:

模板渲染并传递数据user后,添加脚本标记以修改localStorage

<!-- example.ejs --> 

<!-- check for user on page load --> 
<% if (typeof user != "undefined") { %>
  <!-- make user available to script tag -->
  <% var user = user %>

  <!-- use script tag to access ejs data and local storage -->
  <script>
    let user = <%- JSON.stringify(user) %>;
    localStorage.setItem('info', JSON.stringify({'user': user}));
  </script>
<% } %>