【问题标题】:Passing data to server before page is rendered in node.js?在 node.js 中呈现页面之前将数据传递给服务器?
【发布时间】:2017-06-21 21:00:20
【问题描述】:

用户登录后,数据存储在客户端。

有些页面不需要登录用户即可查看...

例如,我在 node.js 上有一个路由,它通过 URL 参数呈现个人资料页面。

app.get("Profile/:id",function(req,res){ //render page and send it.}

任何人都可以看到此页面...但情况如下...在我的应用程序中,用户可以在此页面上发布注释,以便稍后查看。所以这个想法是,如果用户在访问该页面时登录,他可以看到他的所有笔记。

笔记的数据在服务器端。

所以我的问题是... 如何将用户数据传递给 app.get("profile/:id "... 函数,以便在渲染时可以加载和发送注释 ...

知道一件事很重要。我有一个解决方案,我通过引用用户活动套接字的 url 传递一个唯一键,以便将数据发布在 json 上,是否有任何其他方法可以在页面呈现之前将数据从客户端传递到服务器?

【问题讨论】:

  • 您的身份验证/授权如何工作? JWT 还是别的什么?
  • express-sessions ?
  • 那么,您是说您的解决方案允许用户向他们的朋友发送链接,并且该朋友自动显示为第一人登录,因为他们使用带有 URL 编码键的链接进行导航?这真的很不安全。
  • 我不明白,为了验证,我在客户端加密密码并通过客户端套接字发布,然后在服务器端解密......但这与问题有什么关系?
  • @PatrickRoberts 密钥在数据发送后终止。之后,任何人都无法登录。

标签: javascript json node.js express render


【解决方案1】:

几天后我设法解决了这个问题

这个想法是在 php.ini 中有一个像 $_SESSION 这样的 Session 变量。

你需要 express-session npm 并在 express post 函数的 require 参数上分配 session。设置值后,每次浏览器从位置更改时,您都可以提取相同的会话变量,并在渲染时使用数据发布响应。

我用ejs来渲染。

在下一个链接中,有一个完整的教程来实现这一点。

https://codeforgeek.com/2014/09/manage-session-using-node-js-express-4/

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-19
  • 1970-01-01
相关资源
最近更新 更多