而是把if (Meteor.isClient){}
检查你的router.js
文件里的,你可以简单地删除检查,并把该文件的顶级client
文件夹内的应用程序目录。这样,您就不必担心在服务器上处理您的路线了。在做出这样的转变,你可以构建上述路线定义的两种方法之一:
Router.route('/courses/:id', function() {
this.wait(Meteor.subscribe('comments')); // Either this one
this.subscribe('comments').wait(); // or this one. DO NOT DO BOTH.
if(this.ready()) {
this.render();
} else {
this.render('CourseDetail');
}
});
或:
Router.route('/courses/:id', {
subscriptions: function() {
this.subscribe('comments');
},
action: function() {
this.render('CourseDetail');
}
});
注意,第一个选项传递函数作为第二个参数Router.route()
功能而第二个选项将对象作为第二个参数传递给Router.route()
函数。这两个选项都非常有效。有关第一个选项的信息,请检查this;有关第二个选项的信息,请查看this。
至于什么时候你会做服务器端路由,通常这是通过设置你的应用的HTTP请求/响应部分来访问你的服务器的外部应用来完成的。除非是这种情况,否则你很可能永远不需要担心设置这样的事情。但是,在这样做的情况下,您可以定义您的路线并将它们放入应用程序目录中的顶层server
文件夹中。有关服务器端路由的信息,请检查this。