我正在尝试将服务器发送的一些数据保存到客户端localStorage中的EJS模板中。但是,当我尝试在模板中访问localStorage时,我得到localStorage是未定义的。
这是我的page.ejs的一部分:
<% localStorage.setItem('info', JSON.stringify({'user': user})) %>
其中user是从服务器收到的值。
这可能吗?
答案 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>
<% } %>