node.js - 从 ejs 模板访问 localStorage

标签 node.js express local-storage ejs

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

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

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

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

这可能吗?

最佳答案

有几个选项取决于您想要做什么。我看到这篇文章想要做一些不同的事情,但这是一种方法:

模板渲染并传递数据user后,添加script标签修改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>
<% } %>

关于node.js - 从 ejs 模板访问 localStorage,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25272006/

相关文章:

node.js - 如何在页面加载时将模型从 express js 引导到主干?

ruby-on-rails - 如何在 Ruby on Rails 3.2.8 中将数据保存到 LocalStorage?

javascript - 使用 iframe 的跨域本地存储 - "Block third-party cookies"

node.js - 使用put方法将数据更改为Mongodb时,出现错误

javascript - Hapi.js 子域路由到插件

javascript - RxJS Node 在订阅下一个序列之前等待 observable 完成

javascript - 在 Node.js 中调整图像大小的简单方法?

javascript - 如何在express(nodejs)中的路由之间共享/存储数据?

mysql - Express - mysql 查询结果未呈现

windows-mobile - 适用于 Windows Mobile 6 的支持 HTML5 的浏览器