NodeJS 从 ejs 模板 访问 localStorage

qjp7pelc  于 2022-11-22  发布在  Node.js
关注(0)|答案(2)|浏览(202)

我试图将服务器发送的一些数据保存到客户端localStorage中的EJS模板中,但是当我试图访问模板中的localStorage时,我得到localStorage未定义。
下面是我的页面的一部分.ejs:

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

其中user是从服务器接收的值。
这可能吗?

tnkciper

tnkciper1#

有几个选项取决于你想做什么。我偶然发现这篇文章希望做一些不同的事情,但这里有一种方法:
在模板呈现并传递数据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>
<% } %>
kqlmhetl

kqlmhetl2#

检查这个一旦它为我工作,

<script>
        let data =JSON.parse('<%- JSON.stringify(data) %>')
       localStorage.setItem("data", JSON.stringify(data))
</script>

并且为了访问,

<script>
        let data = JSON.parse(localStorage.getItem("data"))
</script>

相关问题