带有会话ID的流星路由

时间:2015-10-25 15:38:17

标签: javascript meteor

我试图在没有用户登录的情况下构建购物车系统。

我正在使用铁路

 Router.route('/cart', {
  template: 'cart',
  data: {
    cart: function () {
      return Carts.find({uid: Meteor.default_connection._lastSessionId}).fetch();
      //return Carts.find({uid: "97gxA35vEAS63qsCR"}).fetch();
    }
  }
})

在我的路由器中,我有一个购物车方法,根据当前会话ID返回结果......这就是我想要做的事情:)

它看起来不像

Meteor.default_connection._lastSessionId

返回任何内容,无法想出原因,但它可以在客户端文件中运行。

我的路由器位于/lib/routers.js(拼写错误纠正)

如果您需要更多信息,请告诉我,谢谢您提前!

1 个答案:

答案 0 :(得分:2)

我认为您不需要依赖Meteor.default_connection._lastSessionId之类的未记录的功能。如果尚未设置随机ID,您可以使用会话变量:

Meteor.startup(function() {
   if (!Session.get('id')) {
      Session.set('id', new Mongo.ObjectID()._str);
   }
});

Router.route('/cart', {
  template: 'cart',
  data: {
    cart: function () {
      if (Session.get('id')) {
         return Carts.find({uid: Session.get('id')}).fetch();
      }
    }
  }
});