Meteor会话命名空间

时间:2013-10-13 10:45:31

标签: session meteor

有没有办法命名Meteor.js Session?在较大的应用程序中,我可能会意外地替换现有会话。如果我使用命名空间会话,这个机会就会降低。

我想到的只有当前实现的解决方案是:

Session.set('namespace1Value');
Session.set('namespace2Value');

我想做点什么:

var sectionFoo = Session.section('foo');
sectionFoo.set('bar');

Meteor是否支持Session命名空间?

2 个答案:

答案 0 :(得分:0)

this讲话中所见,本地无功状态将成为Meteor UI的一部分,我们可以预期Meteor 1.0(2014年初到期)。现在,我只使用长会话变量名。

答案 1 :(得分:0)

我认为这应该做你想要的。如果您觉得它很有用,您可能需要打包并将其发布到Atmosphere。

_.extend(Session, {
  /**
   * Returns a wrapper around Session
   * which automatically prepends
   * the specified name to all keys.
   *
   * @method namespace
   * @param {String} name Name of namespace
   * @param {String} [separator] Separator for prepended
   *                 name. Default is '-'
   * @return {Object} Namespaced session object
   */
  namespace: function (name, separator) {
    var ns;

    separator = separator || '-';
    ns = name + separator;

    return {
      get: function (key) {
        return Session.get(ns + key);
      },
      set: function (key, value) {
        return Session.set(ns + key, value);
      },
      setDefault: function (key, value) {
        return Session.setDefault(ns + key, value);
      },
      equals: function (key, value) {
        return Session.equals(ns + key, value);
      }
    }
  }
});