Javascript Meteor Iron路由器服务器端挂钩
使用Iron router可以添加如下挂钩:Javascript Meteor Iron路由器服务器端挂钩,javascript,meteor,iron-router,Javascript,Meteor,Iron Router,使用Iron router可以添加如下挂钩: // this hook will run on almost all routes Router.before(mustBeSignedIn, {except: ['login', 'signup', 'forgotPassword']}); // this hook will only run on certain routes Router.before(mustBeAdmin, {only: ['adminDashboard', 'admi
// this hook will run on almost all routes
Router.before(mustBeSignedIn, {except: ['login', 'signup', 'forgotPassword']});
// this hook will only run on certain routes
Router.before(mustBeAdmin, {only: ['adminDashboard', 'adminUsers', 'adminUsersEdit']});
见:
但是文档没有说明如何使这些钩子成为“服务器端”
我们的想法是创建一个钩子,它将监督所有路由的发布集合,除了一个或两个我希望对发布内容进行更多控制的特定路由。Iron Router在客户端和服务器上都是相同的,可以在客户端和服务器都可用的目录/文件上进行声明 默认情况下,声明的路由是针对客户端的。如果希望路由是服务器端的,那么可以通过包含
where:'server'
来明确声明
摘自:
在服务器和客户端上定义路由和配置路由器几乎是相同的。默认情况下,路由创建为客户端路由。您可以通过如下方式为路由提供where属性来指定路由用于服务器:
Router.before(someFilter, {only: ['clientRoute1', 'clientRoute2', 'serverRoute1']});
请注意,何处必须放在Router.map中,而不是控制器上
服务器操作函数(RouteControllers)具有不同的可用属性和方法。也就是说,服务器上还没有呈现。因此,渲染方法不可用。此外,您不能等待订阅或在服务器上调用wait方法。服务器路由获取连接请求的裸请求、响应和下一个属性,以及与客户端中相同的params对象
如您所见,只有一种命名约定,因此您可以这样陈述:
Router.before(someFilter, {only: ['clientRoute1', 'clientRoute2', 'serverRoute1']});
或
就像您通常会做的一样。Iron Router在客户端和服务器上都是相同的,可以在客户端和服务器都可用的目录/文件上进行声明 默认情况下,声明的路由是针对客户端的。如果希望路由是服务器端的,那么可以通过包含
where:'server'
来明确声明
摘自:
在服务器和客户端上定义路由和配置路由器几乎是相同的。默认情况下,路由创建为客户端路由。您可以通过如下方式为路由提供where属性来指定路由用于服务器:
Router.before(someFilter, {only: ['clientRoute1', 'clientRoute2', 'serverRoute1']});
请注意,何处必须放在Router.map中,而不是控制器上
服务器操作函数(RouteControllers)具有不同的可用属性和方法。也就是说,服务器上还没有呈现。因此,渲染方法不可用。此外,您不能等待订阅或在服务器上调用wait方法。服务器路由获取连接请求的裸请求、响应和下一个属性,以及与客户端中相同的params对象
如您所见,只有一种命名约定,因此您可以这样陈述:
Router.before(someFilter, {only: ['clientRoute1', 'clientRoute2', 'serverRoute1']});
或
就像你平常一样