Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/460.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Meteor Iron路由器服务器端挂钩_Javascript_Meteor_Iron Router - Fatal编程技术网

Javascript Meteor Iron路由器服务器端挂钩

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

使用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', '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']});

就像你平常一样