服务器端路由方法中的会话对象-Meteor
我在运行应用程序并尝试路由到root/about时出现此错误服务器端路由方法中的会话对象-Meteor,meteor,iron-router,Meteor,Iron Router,我在运行应用程序并尝试路由到root/about时出现此错误 ReferenceError: Session is not defined at [object Object].route.onBeforeAction (app/lib/routes.js:38:8) at boundNext (packages/iron:middleware-stack/lib/middleware_stack.js:251:1) at runWithEnvironment (packages/meteor/
ReferenceError: Session is not defined at [object Object].route.onBeforeAction (app/lib/routes.js:38:8) at boundNext (packages/iron:middleware-stack/lib/middleware_stack.js:251:1) at runWithEnvironment (packages/meteor/dynamics_nodejs.js:108:1) at packages/meteor/dynamics_nodejs.js:121:1 at [object Object].urlencodedParser (/home/action/.parts/packages/meteor/1.0/packages/iron_router/.1.0.7.42k4wv++os+web.browser+web.cordova/npm/node_modules/body-parser/lib/types/urlencoded.js:72:36) at packages/iron:router/lib/router.js:277:1 at [object Object]._.extend.withValue (packages/meteor/dynamics_nodejs.js:56:1) at [object Object].hookWithOptions (packages/iron:router/lib/router.js:276:1) at boundNext (packages/iron:middleware-stack/lib/middleware_stack.js:251:1) at runWithEnvironment (packages/meteor/dynamics_nodejs.js:108:1)
这是我在lib/routes.js位置的路由代码:
Router.map(function () {
this.route('aboutTemplate', {
name: 'aboutTemplate',
where: 'server',
path: '/about',
onBeforeAction: function(){
Session.set('active_menu_option','about');
this.next();
},
onAfterAction: function(){
},
data: function(){
return {active_menu_option: {'about':'active'}};
}
});
}
我假定发生错误是因为这现在是服务器端路由,并且会话对象在客户端范围之外不可用。但是有人能给我更多的信息吗
还有,当我在做这件事的时候——在上面的方法中,第一个参数代表什么?第一个参数“aboutTemplate”与name参数-name:“aboutTemplate”有何不同
任何帮助会话都是一个仅限客户端的包,您需要一个自定义包(如问题注释中所述)才能在服务器上获得它 对于Iron Router
route
函数的第一个参数,它用于指定参数(/posts/:id
),Iron Router使用它来猜测几个参数,例如要使用的模板(Router.route('homepage')
,客户端上的route('homepage')将搜索homepage
模板)
在这种情况下,Iron Router也会猜测名称,因此您的代码有点多余(但在我看来更干净) 了解一下可能很好。嗯,我看了简短的文档-服务器端会话和客户端会话到底是什么?