带有会话id的流星路由

Meteor routing with a session id

本文关键字:流星 路由 id 会话      更新时间:2023-09-26

我正在尝试建立一个无需用户登录的购物车系统。

我用的是ironrouter

 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(拼写错误更正)

如果您需要更多的信息,请让我知道,提前感谢!

我不认为您需要依赖于未记录的功能,如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();
      }
    }
  }
});