【问题标题】:Meteor and Session/Common Data流星和会话/通用数据
【发布时间】:2015-08-20 23:43:00
【问题描述】:

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

我知道 Meteor 的本机会话系统基于响应式概念,并且 cookie 不“存在”,因为 Meteor 在“线路”上运行。虽然假设我正在 LAMP 或平均堆栈上构建应用程序,但我正在创建用户界面。我会使用 cookie/会话来控制用户活动。如果 Meteor 没有反应性,我该如何保持持久性?

我在氛围中搜索了符合我标准的包,我遇到了几个存储“持续会话”的包。尽管这些接口在客户端而不是服务器上运行;因此我的代码将暴露在客户端,因此设置应用程序以供利用。

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

【问题讨论】:

    标签: javascript meteor


    【解决方案1】:

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

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

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

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

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

    这能回答你的问题吗?

    【讨论】:

    • 您先生,是我的英雄。非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-02-09
    • 1970-01-01
    • 2016-03-22
    • 1970-01-01
    • 2016-05-31
    相关资源
    最近更新 更多