javascript - Meteor 和 Session/公共(public)数据

标签 javascript meteor

随着我的同构 javascript 运动的推进,我暂时搁置了 Meteor,同时我更多地使用 MEAN 堆栈。为了避免任何进一步的拖延,我决定完成我最初的原型(prototype)社区应用程序。现在,我对 Meteor 的最大问题不是 react 性,而是 session /公共(public)数据。

我知道 Meteor 的本地 session 系统是基于响应式(Reactive)概念的,并且 cookie 不“存在”,因为 Meteor 在“线路”上运行。虽然假设我正在 LAMP 或 STACK 上构建应用程序,并且我正在创建用户界面。我会使用 cookies/session 来控制用户事件。如果 Meteor 依靠 react 性运行,我该如何保持持久性?

我在 atmosphere 中搜索了符合我条件的包,然后我遇到了几个存储“present session”的包。尽管这些接口(interface)在客户端而不是服务器上运行;因此我的代码将暴露给客户端,因此设置应用程序以进行利用。

综上所述,我知道 Meteor 有它的标准用户界面。我在这里要做的是了解 Meteor,并为 future 的努力积累经验。

最佳答案

Meteor 有一个内置的登录系统,可以跟踪登录的用户,这是人们使用 cookie 的主要原因之一。如果您想以持久的方式在客户端存储其他数据,您可以使用 HTML5 localStorage API。

我认为您指的是像 PHP 这样的东西允许您将数据存储在实际存储在服务器上的“SESSION”变量中,但在来自同一客户端的不同请求之间持续存在。

如果这是您正在寻找的,有几种方法可以为您提供类似的功能:

  1. 存储与特定用户关联的数据,并使用 Meteor 提供的 userId 仅为该用户发布数据(使用 Meteor.publish )
  2. 拥有一个随机生成的客户端 ID,该 ID 存储在 localStorage 中,并在调用订阅或方法时将其传入以作为该客户端进行身份验证。这将在用户未登录的情况下起作用,并且会给您与 PHP 中的 cookies/session 非常相似的结果。您仍会将实际数据存储在服务器的数据库中,但您将通过唯一 ID 知道哪些数据与特定客户端相关联。

确实,如果您来自 PHP,Meteor 的 Session 变量的命名方式可能会造成混淆,其中 SESSION 的含义完全不同。

这是否回答了您的问题?

关于javascript - Meteor 和 Session/公共(public)数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30676426/

相关文章:

node.js - Kubernetes - 增加 meteor /Node 内存限制

cordova - 如何防止 Meteor/Cordova 应用程序连接到 10.0.2.2? (为什么应用程序会连接到那里?)

json - Meteor.http.call(调用URL API)

javascript - 异步 promise 没有获得正确的值(value)

javascript - MeteorJS - 为什么数据更改时我的页面不重新渲染?

javascript - 简化控制 3 个单独下拉菜单的 JavaScript 点击计数菜单

javascript - 当用户的角色是员工时,ng-show 或 ng-if 隐藏按钮

node.js - Buffer.swap16 不是一个函数

javascript - For 循环中的 StringBuilder

javascript - 使用 jQuery 将随机选择的类添加到 HTML 标签