我试图在没有用户登录的情况下构建购物车系统。
我正在使用铁路
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(拼写错误纠正)
如果您需要更多信息,请告诉我,谢谢您提前!
答案 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();
}
}
}
});